在这种模式下:
Function ConstrA () {
EventEmitter.call(this);
}
util.inherits(ConstrA, EventEmitter);
var obj = new ConstrA();
ConstrA和obj将有自己的原型链,而不需要调用util.inherits。
util.inherits是为ConstrA创建第二个原型链还是替换当前的原型链,还是仅仅将EventEmitter原型链的属性(包括自己的和继承的)添加到ConstrA的原型中?
发布于 2014-04-01 17:17:18
util.inherits
用一个对象覆盖构造函数的原型,该对象的原型设置为您要继承的构造函数的原型。
如果要从另一个对象继承原型,然后向自定义构造器的原型中添加其他方法,则需要确保在定义自定义构造函数上的任何其他原型方法之前对自定义构造函数调用util.inherits
。
用于node.js的util.inherits源代码非常简单。你自己看看吧!
https://github.com/joyent/node/blob/490d5ab7808aedb998d1f4f933bf3de748758f62/lib/util.js#L631
然后,您可以阅读Object.Create的MDN文档,以填补理解上的剩余空白。
https://stackoverflow.com/questions/22792156
复制相似问题