Você consegue invocar uma função em JavaScript sem usar parênteses?

O JavaScript é uma linguagem incrível, que te permite fazer uma mesma coisa de diversas maneiras.

Pesquisando um pouco sobre ele, vi um comentário de alguém falando sobre invocar uma função em JavaScript sem usar parênteses.

E realmente existem diversas formas de fazermos isso, além das formas convencionais que estamos acostumados.

Primeiro, vamos ver quais são as diferentes maneiras de chamar uma função.

Invocação Direta

function show() {
  console.log('Função invocada');
}

show();

Usando call e apply

function show() {
  console.log('Função invocada');
}

show.call({});
show.apply({});

Usando setTimeout

Passando uma função como callback, mas mesmo assim estamos usando parênteses.

function show() {
  console.log('Função invocada');
}

setTimeout(show, 0);

Usando a palavra-chave new

function show() {
  console.log('Função invocada');
}

new show();

Em todas as 4 formas mencionadas, estamos usando parênteses.

Mas existem outras maneiras de chamar uma função que não usam parênteses.

Solução 1

Com o new, podemos invocar uma função sem parênteses. Os parênteses são necessários apenas quando queremos passar alguns valores padrão.

function show() {
  console.log('Função invocada');
}

new show;

Solução 2

Usando uma Template Strings

function show() {
  console.log('Função invocada');
}

show``;

Solução 3

Usando uma propriedade getter em um objeto.

const obj = {

    show: 1,
    get show() {
        console.log('Função invocada');
    }
}

obj.show;

O JavaScript é realmente incrível!

Teve alguma dúvida ou sugestão? Então me fale abaixo nos comentários.

Espero que tenha um excelente dia!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *