我正在研究JavaScript中继承的一些不同技巧。我一直在使用NodeJS util.inherits函数来处理我的最新项目。我想知道:
super_
属性? constructor
属性?所以不要这样:
constructor.super_ = superConstructor;
constructor.prototype = Object.create(superConstructor.prototype, {
constructor: {
value: constructor,
enumerable: false
}
});
就是这样:
constructor.prototype = Object.create(superConstructor.prototype, {
constructor: {
value: constructor,
enumerable: false
},
super_:{
value: superConstructor.prototype,
enumerable: false
}
});
这样调用超级函数要容易得多,因为而不是:
this.constructor.super_.prototype.someFunction.call(this);
它会变成这样:
this.super_.someFunction.call(this);
这对我来说更有意义,但如果我错过了什么,我很好奇。 我也做了JSFiddle showing this implementation.
预先感谢您的回复!