JavaScript .on()方法如何定义



在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' });

相关内容

  • 没有找到相关文章

最新更新