1
resposta

Problema no uso de funções.

No problema "O botão que falhou" a explicação foi de que o erro ocorreu por estarmos usando a função botaoHandler() com parênteses e não sem eles botaoHandler. O argumento foi de que "não estamos mais chamando a função, mas passando-a por inteiro para o evento click . Quando o botão for clicado, por debaixo dos panos o navegador fará botaoHandler() para nós. "

Confesso que não entendi o porquê visto que, na minha concepção era só chamar a função. Por que chamar "ela por inteiro".

1 resposta

César, o método addEventListener recebe, como parâmetros, o evento que queremos ouvir (no caso, click) e a função que queremos que esse evento dispare (no caso, botaoHandler). Se passarmos como parâmetro a função com os parênteses (botaoHandler()), estamos passando, na verdade, o resultado da chamada da função. Ou seja, caso a função retornasse a string 'palavra', estaríamos passando como parâmetro essa mesma string. Como a função botaoHandler não retorna nada, acabamos passando para o addEventListener nada como segundo parâmetro! Esse método, pois, precisa receber apenas o nome da função que queremos que seja chamada pelo evento específico, para que então tudo dê certo :).

Deu pra entender ou ainda ficou meio confuso, César?