Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não entendi a ausência dos ()

Olá. Tenho uma dúvida sobre a necessidade do uso, ou não, dos parênteses quando chamamos a function verifica. Por que assim funciona?

input = document.querySelector("input");
button = document.querySelector("button");
button.onclick = tchau;

Mas não funciona quando colocamos os parênteses?

input = document.querySelector("input");
button = document.querySelector("button");
button.onclick = tchau();

Atenciosamente. Ricardo

2 respostas

Olá Ricardo!

Quando colocamos parênteses na função estamos invocando ela, chamando ela para ser executada. Quando você faz assim:

tchau();

Você está pedindo para o navegador executar todas as instruções dentro da função. Faça um teste. Vá no console do navegador e digita tchau(). Ele executa a função.

Agora, no código abaixo:

button.onclick = tchau;

Não estamos executando a função, mas sim guardando todas as suas instruções "dentro" do botão, e essas instruções serão executadas somente no clique do botão. O tchau sem parênteses contém as instruções da função e não a execução da mesma, entendeu a diferença? Faça o teste. Vá no console e digite tchau; para ver o que ele te mostra. Ele mostra o que está dentro da função, o que ela contém, o que fica guardado "dentro" do botão e não executa a função como acontece quando você digitatchau();.

Abraços e sucesso nos estudos!

solução!

Obrigado André.