怎么样" e"分配给事件的参数?

时间:2015-06-20 22:16:02

标签: javascript javascript-events

我可以在e参数周围看到几个主题,但有一点我无法完全理解,尽管我确定它是一个明显的答案。

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

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

3 个答案:

答案 0 :(得分:2)

它在内部发生,因为the spec这样说:

  

调用侦听器回调' handleEvent,事件已通过   将此算法作为第一个参数和事件   currentTarget属性值为callback this value

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

答案 1 :(得分:0)

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

答案 2 :(得分: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 documentation for this function