事件处理程序和事件侦听器之间有什么区别?
直到最近,我认为它们是同一个东西的不同名称:在事件发生时调用的函数.但是我最近阅读了一些内容,它将事件处理程序称为事件监听器绑定的DOM元素,这是有意义的.
简而言之,语言本身并没有事件的概念.这些是DOM的一部分.
Event Handler:
An asynchronous callback that is invoked when an event is raised.
Event Listener:
An object that implements an interface and has events "pushed" to it.
在DOM事件的上下文中,使用的接口是:
interface EventListener {
void handleEvent(in Event evt);
};
Run Code Online (Sandbox Code Playgroud)
然后你注册一个这样的监听器:
target.addEventListener(type, listener, useCapture);
Run Code Online (Sandbox Code Playgroud)
以下是MDC的文档:
listener: The object that receives a notification when an event of the specified type occurs. This must be an object implementing the EventListener interface, or simply a JavaScript function.
所以它看起来像函数对象隐式实现EventListener以方便使用.
类比
将事件处理程序视为给出邮件员指令.
我不想等你停下来所以我希望你把包裹交给我的配偶,这样他们就可以打开它了.
想想Event Listener等着看医生.
我会听你准备好看到我的通知.在那之前我会读一本杂志.
在一天结束时,虽然这些只是抽象
嘿,我希望你执行这段代码!
资源
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |