Tag: 构造器

你应该如何inheritanceEventEmitter节点?

我正在阅读这篇小文章,以了解从EventEmitterinheritance,但我有点困惑。 他这样做: function Door() { events.EventEmitter.call(this); this.open = function() { this.emit('open'); }; } Door.prototype.__proto__ = events.EventEmitter.prototype; https://gist.github.com/chevex/7646362 为什么他用自己的构造函数手动调用EventEmitter的构造函数呢? 另外,为什么他将原型的原型设置为EventEmitter的原型呢? 这对我来说非常混乱。 然后在评论中有人build议他这样做,而这看起来更优雅: function Door() { events.EventEmitter.call(this); this.open = function () { this.emit('open'); } } util.inherits(Door, events.EventEmitter); https://gist.github.com/chevex/7646447 这似乎比其他方式更干净,尽pipe这可能只是因为我不明白发生了什么事情。 如果util.inherits和第一个例子一样,我也不会感到惊讶。 第二个至less对我有点意义,但是我还是不明白为什么他们不这样做: function Door() { this.open = function () { this.emit('open'); } } Door.prototype = new events.EventEmitter(); https://gist.github.com/chevex/7646524 […]