请考虑以下代码段:
document.querySelector("input").addEventListener("input", function(event){
document.querySelector("p").textContent = event.target.value;
});
如果我删除了event
参数,该代码仍然可以按预期工作:
document.querySelector("input").addEventListener("input", function(){
document.querySelector("p").textContent = event.target.value;
});
但是如何?我最好的猜测是,它可以通过addEventListener
中的词法作用域以某种方式获得,但是我不确定。谁能确认?
答案 0 :(得分:3)
请参见MDN:
只读的Window属性事件返回当前由网站代码处理的事件。在事件处理程序的上下文之外,该值始终是未定义的。
您应避免在新代码中使用此属性,而应使用传递到事件处理程序函数中的Event。该属性不是 受到普遍支持,即使受到支持也会给您的代码带来潜在的脆弱性。
我最好的猜测是,它可以通过
addEventListener
中的词法作用域获得,但是我不确定。
这是一个全局变量:window.event
。它只是在处理事件时才存在。
兼容性:IE和Google Chrome支持event
的{{1}}属性,而Firefox不支持。