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

Isso seria uma função callback ?

Olá pessoal. Essa logica de jogar uma função e só ser executada quando o evento de click acontecer no botão, é isso que no javascript chamam de CALLBACK ?

E uma duvida adicional: Esse efeito de não passar os parenteses para passar o código inteiro naquela variável. O mesmo aconteceria se estivéssemos rodando no nodejs, no console, no caso. Ou isso é valido somente para o browser ?

2 respostas
solução!

Olá Yuri, tudo bem com você?

Isso mesmo, a maioria dos eventos do javascript utilizam uma função callback para conseguir o comportamento definido pelo desenvolvedor :)

Mais para frente será apresentado o eventListener, nele fica mais visível este comportamento =)

botao.addEventListener( "click", function(event){
    event.preventDefault();
    alert("Olá Mundo!");
});

// Outra forma
function minhaFuncao(){
    alert("Olá Mundo!");
}


botao.addEventListener("click", minhaFuncao);

Nestes 2 exemplos fica mais evidente que associamos um tipo de evento do usuário com uma função callback a ser executada =)

O mesmo aconteceria se estivéssemos rodando no nodejs, no console, no caso. Ou isso é valido somente para o browser

Em qualquer ambiente, a lógica de não colocar os parenteses é porque estamos passando uma função como parâmetro:

botao.addEventListener("click", minhaFuncao);

Da mesma forma que em vários exercícios passamos números para calcular IMC, ou Strings para colocar na tela, o javacript permite que a gente passe funções também :)

Se colocássemos os parenteses, estaríamos passando o resultado da função como parâmetro e nos 2 exemplos que eu dei o resultado é indefinido (undefined) pois executa um alert e não retorna nada :)

Então nestes exemplos que temos funções callbacks, passamos a função que queremos que seja executada, ao invés de executá-la =)

Conseguiu Compreender?

Abraços e Bons Estudos!

Consegui sim, muito obrigado, Professor S2

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software