Node.js-从EventEmitter继承
我在许多Node.js库中看到了这种模式:
Master.prototype.__proto__ = EventEmitter.prototype;
(在这里获得)
有人可以举个例子给我解释一下,为什么这是一种常见的模式,什么时候方便?
回答:
就像该代码上面的注释所言,它将Master
继承自EventEmitter.prototype
,因此您可以使用该“类”的实例来发出和侦听事件。
例如,您现在可以执行以下操作:
masterInstance = new Master();masterInstance.on('an_event', function () {
console.log('an event has happened');
});
// trigger the event
masterInstance.emit('an_event');
:正如许多用户指出的那样,在Node中执行此操作的“标准”方法是使用“ util.inherits”:
var EventEmitter = require('events').EventEmitter;util.inherits(Master, EventEmitter);
:随着我们对ES6类的关注,建议立即扩展EventEmitter
该类:
const EventEmitter = require('events');class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
myEmitter.on('event', () => {
console.log('an event occurred!');
});
myEmitter.emit('event');
请参阅https://nodejs.org/api/events.html#events_events
以上是 Node.js-从EventEmitter继承 的全部内容, 来源链接: utcz.com/qa/415655.html