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

Argumento passado para função anônima

Amigos, Gostaria de destacar um trecho do código que criamos a partir dessa aula:

var botao = document.querySelector("#adicionar-paciente");
botao.addEventListener("click", function(event) {
    event.preventDefault();

Bom, explicando rapidamente, pegamos um botão via querySelector, usando seu ID, e aí adicionamos à ele um evento. Passamos o evento que queremos como primeiro argumento (click) e uma função anônima como segundo argumento, porém, para essa função anônima, passamos um argumento event. Vi essa mesma abordagem de passar um argumento para função anônima em outro momento do curso e não entendi muito bem como isso funciona.

  1. Quem define esse argumento?
    1. Que argumento é esse?
    2. Posso passar outros argumentos?

Estou meio perdido com isso. Entendi o seu uso nesse contexto do exercício, mas gostaria de entender o motivo dele existir e como usar isso no meu dia-a-dia.

Obrigado e abraços.

4 respostas

Não sei se entendi bem o contexto, mas javaScript é uma linguagem orientada e eventos, ou seja, clique do mouse, mover o mouse, pressionar uma teclas etc... por isso o argumento event para que você possa trabalhar as propriedades do evento que foi disparado.

solução!

Oi, Luis

Complementando a resposta do Adelson, essa função anônima que você passa para o addEventListener é o navegador que chama. Então é ele que define que, quando a função for chamada, ela vai receber um objeto representando o evento para que você possa lidar melhor com esse evento.

É como se, lá no document, houvesse um código do tipo:

var funcoesDoUsuario = // guarda as funções que você passou pro addEventListener
var evento = // informações do evento que acabou de acontecer
for (var i = 0; i < funcoesDoUsuario.length; i++) {
  var callbackDoUsuario = funcoesDoUsuario[i];
  callbackDoUsuario(evento); // aqui que ele chama sua função e passa o evento
}

Ficou mais claro assim?

Adelson e Luiz, Obrigado pelas respostas. Ficou claro para mim.

Abraços, Luis

oi