evento é uma variável global acessível em qualquer lugar da cadeia de retorno de chamad
Eu estava brincando com ouvintes de eventos com DOM e javascript e percebi o seguinte:
function chained(msg) {
console.log(msg, event);
}
function onClick() {
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
Agora o engraçado ... isso vai gerar:
"o corpo foi clicado, (MouseEvent)"
Então eu pergunto, por quê? como ele passa o objeto de evento sem enviá-lo nochained
ligar
function chained(msg) {
console.log(msg, namedEventObj); //throw error namedEventObj is not defined
}
function onClick(namedEventObj) {
console.log(event); //outputs (MouseEvent);
console.log(nameEventObj); //outputs (MouseEvent);
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
Mesmo se eu declarar que o objeto de evento será passado noonClick
funciona comonamedEventObj
estará disponível apenas paraonClick
mas não parachained
unção @ ... eu consegui isso e isso faz sentido para mim ... mas definitivamente não é oevent
ariável @ para estar disponível para ochained
função.
Alguém sabe por que se comporta assim?
A única coisa em que consigo pensar é que esse evento é de fatowindow.event
e se torna disponível quando algum evento é despachado e Event ... mas isso significa que qualquer elemento pode obter essas informações de evento se chamado ao mesmo tempo que o evento em que é disparado?
Estou usando o Chrome 11.0.x