2
respostas

Como o javascript sabe que a palavra que está sendo passada na função anônima tem o preventDefault()?

O meu código está assim atualmente:

var btnAdicionar = document.querySelector('#adicionar-paciente');

btnAdicionar.addEventListener("click", function(event){
    event.preventDefault();
    console.log("Fui clicado");
});

Mas se eu trocar o event para outra palavra como

btnAdicionar.addEventListener("click", function(word){
    word.preventDefault();
    console.log("Fui clicado");
});

Ele continuará funcionando.

A minha dúvida é como ele consegue saber que o que está sendo passado como parâmetro na função anônima tem o preventDefault? Sou um pouco acostumado com linguagens com tipagem explícita e isso é um pouco novo pra mim.

2 respostas

Boa tarde Naldson,

O que acontece é que muitas funções implementadas no javascript recebem parâmetros (igual os parâmetros que nos criamos nas nossas funções).

A diferença é que quando nós usamos uma das funções do sistema não somos obrigado a colocar explicitamente todos os parâmetros dela, só os que queremos usar. Nós podemos dar qualquer nome pra esses parâmetros (event, word, etc).

Além disso esses parâmetros vem em uma ordem pré-definida (se tivesse algum parâmetro antes do event você ia precisar declarar alguma coisa pra depois usar o event).

Dê uma olhada na quantidade de parâmetros da função addEventListener aqui.

Abraços

Opa Naldson, tudo bem?

O que acontece é que quando trabalhamos com eventos em si como click, mouse over, etc. O primeiro parâmetro que você recebe no callback é uma referência ao objeto que sofreu o evento.

Esse objeto, independente do nome que você der a ele, ele vai possuir o preventDefault. O nome event é apenas uma convenção.