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

时间:2018-12-27 11:19:19

标签: javascript dom

在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

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语法相矛盾,尽管一切正常,我在哪里错过了?

1 个答案:

答案 0 :(得分:0)

无论函数有多少个参数,都可以根据需要传递任意数量的参数。这些额外的参数然后会丢失(但是如果不使用它们就没关系了)。

 function handler(a) {
  //...
 }

 handler(); // a = undefined
 handler(1); // a = 1
 handler(1, 2); // a = 1, ? = 2

因此,如果您不需要访问处理程序中的事件,则可以省略该参数。

PS:仍然可以使用arguments关键字来访问那些“丢失的参数” ...但是请永远不要使用此