即使函数参数不同,Javascript 如何知道它是一个事件?

问题描述 投票:0回答:2

我想每个曾经用 Javascript 编写过代码的人都知道这些事件。作为一个例子,我有:

document.addEventListener("keydown", function(event) {
  console.log(event.code);
});

但我的头脑仍然不明白:将其命名为“event”或“e”是否至关重要,或者可以将其称为不同的名称,例如“pastry”吗?如果是,那么该函数如何知道它必须侦听事件并标记它们或将它们原样返回? “addEventListener”是否只是说函数中必须有一个事件,无论名称如何?

javascript dom-events
2个回答
0
投票

JavaScript 函数是

Function
类型的对象。当您创建这样的匿名函数时,您实际上是在创建一个带有参数和主体的新
Function
对象。然后,您将此对象作为参数提供给
document.addEventListener
函数,该函数反过来为函数的第一个参数提供一个值(无论参数名称如何)并执行它。您的函数对
document.addEventListener
一无所知(尽管您可以在函数中获取它的名称),它只是使用提供的值运行。


0
投票

addEventListener()
是一个带有两个参数的函数:一个字符串,指示要侦听的事件类型,以及一个侦听器,侦听器是将接收事件的对象。

监听器的名称并不重要,可以是一个变量来存储事件,但最常见的是使用函数。

在您的示例中,“event”是标识为侦听器的函数的参数,因此该函数的参数(如果您提供了一个)将包含该事件,并且可以根据您的喜好命名(例如您的中的“pastry”)示例)。

您可以在

mozilla 文档
上了解有关 addEventListener()

的更多信息
© www.soinside.com 2019 - 2024. All rights reserved.