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

Dúvida sobre a function verifica

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 = verifica;

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

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

Atenciosamente. Ricardo

5 respostas

Ola Ricardo!

Você está atribuindo o endereço do seu método verifica ao evento onclick!

button.onclick = verifica;

Quando utiliza o método verificar com parenteses () você está chamando a funcionalidade do mesmo e não atribuindo o endereço do método verifica ao evento onclick!

button.onclick = verifica();

Entendeu?

Abraços!

Desculpe Heymer, mas, como ainda sou muito novato em Java, realmente não acompanhei a lógica desta sintaxe!

Olá Ricardo!

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

verifica();

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 verifica(). Ele executa a função.

Agora, no código abaixo:

button.onclick = verifica;

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 verifica 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 verifica; 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ê digita verifica();.

Abraços e sucesso nos estudos!

Ricardo, você disse acima que é novato em Java. Mas, só para esclarecer, o que você está aprendendo neste curso é JavaScript. Apesar do nome parecido Java e JavaScript são duas linguagens completamente diferentes, apesar que, a lógica de programação que você aprender aqui poderá sim ser utilizada em um curso de Java, o que vai mudar é a forma de escrever na linguagem.

solução!

Correto André. Estou fazendo os dois cursos e lendo alguns livros de Java também. Quando falei java... Estava meio que economizando linguagem... Mas também sou novato em Java, assim... Meio que sou novato em Java de modo geral... Mas acredito que agora entendi a diferença sobre a função com e sem (). Valeu.