我只是用DOM和JavaScript事件侦听器玩耍,并没有注意到这一点:
function chained(msg) {
console.log(msg, event);
}
function onClick() {
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
现在有趣的事情......这将输出:
“身体被点击,(MouseEvent)方法”
然后我问,为什么? 如何做它传递事件对象而不发送的chained
电话吗?
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);
即使我宣布事件OBJ上传递onClick
功能namedEventObj
将只提供给onClick
而不是chained
功能......我得到这个,这是有道理的,我...但绝对不是event
的变量是提供给chained
功能。
任何人都知道为什么它的行为这样的吗?
我能想到的唯一的事情就是该事件实际上是在window.event
,这让本身可当一些事件调度和事件......但是这将意味着,任何元素可以得到该事件的信息,如果所谓的在同一时间为事件触发时?
我使用11.0.x版的Chrome