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

Por que esses códigos não funcionam da mesma forma?

Na aula 08.01 para executar a função verifica após o click no botão é escrito o código da seguinte forma:

button.onclick = verifica;

mas porque nesse outro formato não funciona?:

if(button.onclick){
        verifica();
    }

Na minha cabeça esse código pode ser "traduzido" para "se o botão for clicado então verifica"

Alguém pode me ajudar a entender o por que desse código não funcionar da mesma forma do outro?

3 respostas
solução!

Boa tarde!

No primeiro caso, é atribuída uma ação no button.onclick = verifica; . Ou seja, no evento click, acione uma função.

O click do botão é um evento, não uma variável. Assim, dentro de um 'if', ele não irá funcionar, pois não tem um valor atribuído. O if só sabe trabalhar com 'true' ou 'false'. Como o click é um evento, uma ação, não retorna 'true' ou 'false'.

Olá José, tudo bem com você?

Isso ocorre porque quando fazemos button.onclick estamos associando o clique daquele botão com uma função, você pode ler como: "Quando clicar no botão execute a função verifica"

Então quando você faz if(button.onclick) não faz muito sentido porque ele não devolve verdadeiro ou falso para poder fazer essa verificação e por isso o código não funciona.

Compreendeu? Qualquer coisa estou a disposição!

Abraços e Bons Estudos ;)

Obrigado, pessoal!