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

回到顶部