如何将“e”参数分配给事件

How is the "e" parameter assigned to the event?

本文关键字:参数 分配 事件      更新时间:2023-09-26

我可以看到e参数周围的一些线程,但有一件事我无法完全理解,尽管我确信这是一个显而易见的答案。

e 参数传递到从 addEventListener() 调用的函数时,e看起来会分配给事件对象。我想了解的是它在哪里/如何分配?

element.addEventListener('click', function (e){
  console.log(e);
}, false);

它发生在内部,因为规范是这样说的:

调用侦听器的回调handleEvent,事件已传递 将此算法作为第一个参数和事件 currentTarget属性值作为回调此值。

因此,回调函数接收一个参数。您可以将其命名为 eeventfoobar 。您甚至可以不命名它,并使用arguments[0]访问它。

它是从事件调用函数时分配的。您只是在定义一个回调,而不是调用它。

取而代之的是:

element.addEventListener('click', function (e){
   console.log(e);
},false);

你可以这样写:

function DoOnClick(parameter) {
  console.log(parameter);
}
element.addEventListener('click', DoOnClick ,false);

在本例中,addEventLinster 中的第二个参数是回调函数。回调函数是在事件发生时将调用的函数,它将以new Event()作为参数进行调用,Event parameter将包含该事件生成的所有数据(X,Y 位置、触发它的元素等)。

DoOnClick函数没有什么特别之处,如果你这样称呼它DoOnClick("Hello"),那么Hello就会在控制台中打印出来。

如果你想了解更多关于addEventListener的实际工作原理,你可以查看这个函数的Mozilla文档。