Javascript “这是怎么回事?”;";指定给事件的参数?

Javascript “这是怎么回事?”;";指定给事件的参数?,javascript,javascript-events,Javascript,Javascript Events,我可以看到关于e参数的一些线索,但有一件事我不能完全理解,尽管我确信这是一个显而易见的答案 当e参数被传递到从addEventListener()调用的函数中时,e看起来被分配给事件对象。我想了解的是它在哪里/如何分配 element.addEventListener('click', function (e){ console.log(e); }, false); 当从事件中调用函数时,将分配该值。您只是定义了一个回调,还没有调用它 而不是这个: element.addEventList

我可以看到关于
e
参数的一些线索,但有一件事我不能完全理解,尽管我确信这是一个显而易见的答案

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

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

当从事件中调用函数时,将分配该值。您只是定义了一个回调,还没有调用它

而不是这个:

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
函数没有什么特别之处,如果您这样调用它,则控制台中将打印
Hello


如果您想更多地了解
addEventListener
的实际工作原理,您可以看到。

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

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


因此回调函数接收一个参数。您可以将其命名为
e
event
foobar
。您甚至不能命名它,也不能使用
参数[0]

访问它。好的,当事件发生时,您的处理程序将使用
处理程序(新事件(…)
调用。参数传递给函数的方式与调用函数的方式完全相同。您的意思是什么
e
只是一个参数,您可以将其命名为
param
。添加事件侦听器时,将调用您使用的函数。因此,如果您
addEventListener('click',func1')
,然后将调用
func1(eventData)
,其中
eventData
是一个
newevent()
对象。谢谢,Cristy!这对我来说肯定是件好事。感谢您的帮助。这进一步提供了明确性。干杯