Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

addEventListener

1º dúvida: Gostaria de saber mais a fundo o porque o código abaixo não funciona. Em especial o botao.addEventListener('click', botaoHandler()); Não roda por ter () e quando inserimos o botao.addEventListener('click', botaoHandler); sem os ( ), roda normalmente.

<button id="botao">clique-me</button>
<script>

    var botao = document.querySelector('#botao');

    function botaoHandler() {

        alert('Botão clicado');
    }

    botao.addEventListener('click', botaoHandler());
</script>

2º dúvida: Quando usamos função anônima, usamos ( ), roda normalmente, por qual motivo. Por gentileza


<meta charset="UTF-8">
<button id="botao">clique-me</button>

<script>

    var botao = document.querySelector("#botao");


    botao.addEventListener("click", function() {

        alert("Botão clicado");
    });

</script>
1 resposta
solução!

Fala Bruno, tudo bem? Espero que sim!

O que acontece é que, o método addEventListener precisa controlar quando essa função deve ser executada ou não, e quando você utiliza () você está executando uma função, coisa que não deve ser feito ja que o método só deve executar a função quando o evento for disparado, sendo assim, você passando só o nome da função, ele consegue executar essa função quando ele quiser, isso é chamado de função callback, que é quando passamos uma função que será executada assim que algo for concluido. O mesmo acontece quando pasamos uma função anônima, que também não é executada na hora e sim quando o evento é disparado.

Caso a dúvida ainda persista, você pode consultar a própria documentação do método.

Espero ter ajudado, abraços e bons estudos :D