创build自定义EventEmitter时是否需要events.EventEmitter.call(this)?
在自定义事件发射器构造函数中有很多不使用events.EventEmitter.call(this)
的例子,而其他的则使用它( 官方文档 ):
var events = require('events') , util = require('util'); var MyEmitter = function () { events.EventEmitter.call(this); }; util.inherits(MyEmitter, events.EventEmitter); MyEmitter.prototype.write = function () { this.emit('tick'); };
随着我对JavaScript的基本理解,我不知道是否需要它。 是否需要调用EventEmitter
初始化的东西?
是的。
在节点0.10之前,如果你忘记了,它不会中断。
现在, 它将 :
EventEmitter构造函数现在初始化各种属性。 作为一个OOPinheritance父项,它仍然可以正常工作,但是你必须正确地inheritance。 扩展EventEmitter类时,Broken-Style JSinheritance模式将不起作用。 这种inheritance风格从来没有被支持,但在0.10之前,它并没有真正的破坏。