在mozilla doc中,handleEvent
方法被声明为
eventListener.handleEvent(event);
https://developer.mozilla.org/en-US/docs/Web/API/EventListener/handleEvent
和addEventListener
为
target.addEventListener(type, listener[, options]);
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Syntax
listener
为handleEvent
或包含此类方法的对象,但是在同一页面上有一个示例:
// Function to change the content of t2
function modifyText() {
...
}
// add event listener to table
var el = document.getElementById("outside");
el.addEventListener("click", modifyText, false);
modifyText
不带任何参数,这与handleEvent
语法相矛盾,尽管一切正常,我在哪里错过了?
答案 0 :(得分:0)
无论函数有多少个参数,都可以根据需要传递任意数量的参数。这些额外的参数然后会丢失(但是如果不使用它们就没关系了)。
function handler(a) {
//...
}
handler(); // a = undefined
handler(1); // a = 1
handler(1, 2); // a = 1, ? = 2
因此,如果您不需要访问处理程序中的事件,则可以省略该参数。
PS:仍然可以使用arguments
关键字来访问那些“丢失的参数” ...但是请永远不要使用此