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!