1
resposta

Diferença entre usar adivinhaNumero() ou adivinhaNumero no button.onclick = ;

button.onclick = adivinhaNumero();

A linha de código acima está associando todo o código escrito na função adivinhaNumero() à button.onclick. Já *adivinhaNumero* estaria associando o cálculo, certo?

1 resposta

Olá Marcus, tudo bem?

Temos dois pontos a serem trabalhados aqui.

Primeiro ponto

Associação da função com o button.onclick

O que ocorre é que quando escrevemos:

button.onclick = adivinhaNumero();

Estamos informando ao nosso navegador para iniciar a função advinhaNumero assim que for recarregada a página. Dessa forma, ele irá ignorar a atribuição feita ao evento onclick, porque estamos chamando uma função diretamente quando adicionamos () após o nome dessa função.

Dessa forma, temos que remover os (), o código ficará assim:

button.onclick = adivinhaNumero;

A partir disso, estamos explicitamente dizendo que somente ao clicarmos no nosso botão (evento onclick), ele executará a instrução atribuída a ele, ou seja, a própria função que é o valor que está sendo passado.

Segundo ponto

A função em si.

O adivinhaNumero está se referindo ao ponto do código que encontra-se a declaração da função, onde dentro desta função estão contidas as instruções para serem executadas, como você citou, acredito que seja o cálculo para adivinhar o número.

Resumindo, no código button.onclick = adivinhaNumero; podemos interpretar que a adivinhaNumero é uma função que faz uma instrução e essa instrução será executada ao clicarmos no botão, visto que a própria função é o valor que a variável está recebendo.

Espero ter ajudado, em caso de dúvidas fique a vontade para perguntar. Bons estudos!