2013-05-21 37 views
5

有定制事件发射器的构造不使用events.EventEmitter.call(this)了很多例子,而其他正在使用它(official documentation):创建自定义EventEmitter时是否需要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内部的初始化内容?

回答

5

是的。

在节点0.10之前,如果您忘记了它,它不会中断。

现在,it will

的EventEmitter构造现在初始化各种属性。它仍然可以很好地作为OOP继承父项,但你必须正确地继承。扩展EventEmitter类时,Broken-Style JS继承模式将不起作用。这种继承风格从来没有被支持,但在0.10之前,它并没有真正的破坏。

相关问题