在mozilla doc中,handleEvent
方法被声明为
eventListener.handleEvent(event);
https://developer.mozilla.org/en-US/docs/Web/API/EventListener/handleEvent
CCD_ 2作为
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
语法相矛盾,尽管一切正常,但我在哪里缺失?
无论函数有多少参数,都可以向函数传递任意数量的参数。这些额外的论点就会丢失(但如果不使用它们,那也没关系)。
function handler(a) {
//...
}
handler(); // a = undefined
handler(1); // a = 1
handler(1, 2); // a = 1, ? = 2
因此,如果不需要访问处理程序中的事件,则可以省略该参数。
PS:那些"丢失的参数"仍然可以使用arguments
关键字访问。。。但请永远不要使用这个