回顾过去我写的一些JS,我注意到我试图在事件处理程序中访问event.keyCode
,但我的函数唯一的参数是e
,而不是{{ 1}}。因此,虽然我希望获得event
,但我发现我的脚本按预期工作(至少在Chrome中)。
"Uncaught ReferenceError: event is not defined"
事实上,如果我在该处理程序中放置document.body.addEventListener('keyup', function(e) {
if (event.keyCode === 13) {
// ...
}
});
,我会得到console.log(e === event)
。
经过一点点测试(在a JS Bin中),似乎这必须适用于每一个这样的事件,使true
另一种“狡猾的”局部变量,如arguments
出现在函数中,而不会询问对于它在参数中。
这让我想知道:
event
的此行为是否与其他浏览器一致? JS环境?