Function ConstrA () {
EventEmitter.call(this);
}
util.inherits(ConstrA, EventEmitter);
VS
Function ConstrA() {}
util.inherits(ConstrA, EventEmitter);
EventEmitter.call(this)是否有必要这样做?
答案 0 :(得分:2)
EventEmitter.call(this)是否有必要这样做?
Apparently,是的:
function EventEmitter() {
EventEmitter.init.call(this);
}
…
EventEmitter.init = function() {
this.domain = null;
if (EventEmitter.usingDomains) {
// if there is an active domain, then attach to it.
domain = domain || require('domain');
if (domain.active && !(this instanceof domain.Domain)) {
this.domain = domain.active;
}
}
this._events = this._events || {};
this._maxListeners = this._maxListeners || undefined;
};
由于使用._events
的所有方法都检查它是否存在,如果你省略了调用,我不会期望太多破坏,但是我不确定将来是否成立。< / p>
答案 1 :(得分:1)
util.inherits
抓取整个父原型,但是你丢失了构造函数。因此,继承构造函数通常会使用当前this
作为上下文调用父构造函数,就像您在第一个示例中看到的那样。