在jQuery库中,该函数不存在,但是每个jQuery对象都有这些基本方法。在另一个线程中,有人说.on()属于节点API,这使我感到困惑,因为它可以在前端使用,我什至不需要包括 const EventEmitter = require('events');
,而jquery.min也不需要。JS。我只是想了解为什么字符串"单击"或"鼠标"是有效的参数。
另外,on()方法可以广泛使用回调函数。例如: $('class').on('click', event => {...})
我想理解为什么可以通过上面说明的lambda函数或"事件"。
另外,有些人可能会发现以下资源有用,但是,这并不是很简单,这使我提出的问题多于答案:https://nodejs.org/docs/latest/api/events.html
on
方法登记处理程序,该处理程序是带有特定签名的回调函数。事件触发后,将调用处理程序。它接收必要的数据作为函数参数(通常是event
对象)。
jQuery和Node事件发射器在任何方面都没有相关,它们都有on
方法,因为这是添加事件处理程序的方法的常规方式。
幼稚的实现,显示了其工作原理:
const emitter = {
handlers: {},
on(eventName, handler) {
if (!this.handlers[eventName])
this.handlers[eventName] = [];
this.handlers[eventName].push(handler);
},
emit(eventName, data) {
for (const handler of this.handlers[eventName])
handler(data);
}
};
emitter.on('foo', data => console.log(data.text));
emitter.emit('foo', { text: 'Foo event triggered' });