EventListener.handleEvent()中的事件参数是强制性的吗



在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

listenerhandleEvent或包含这种方法的对象,但在完全相同的页面上有一个例子:

// 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关键字访问。。。但请永远不要使用这个