我可以在e
参数周围看到几个主题,但有一点我无法完全理解,尽管我确定它是一个明显的答案。
当e
参数传递到从addEventListener()
调用的函数时,e
看起来要分配给事件对象。我想要了解的是在哪里/如何分配?
element.addEventListener('click', function (e){
console.log(e);
}, false);
答案 0 :(得分:2)
它在内部发生,因为the spec这样说:
调用侦听器的回调'
handleEvent
,事件已通过 将此算法作为第一个参数和事件currentTarget
属性值为callback this value。
所以回调函数接收一个参数。您可以将其命名为e
,event
或foobar
。您甚至不能为其命名,并使用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。