我有两个构造函数,子级一个从父级继承一些方法和属性,就像这样

function foo(){
this.bar="baz";
}

function fubar(){
this.qux="zubar";
}
fubar.prototype=new foo();
fubar.prototype.constructor=fubar;
module.exports.fubar=fubar;


内部文件继承工作正常,但导出时无法到达父元素
我也尝试过util.inherits结果是一样的

最佳答案

您只需要从foo构造函数调用fubar构造函数,以使.bar属性将在foo构造函数中正确初始化:

function foo(){
    this.bar = "baz";
}

function fubar(){
    foo.call(this);
    this.qux = "zubar";
}
fubar.prototype = Object.create(foo.prototype);
fubar.prototype.constructor = fubar;
module.exports.fubar = fubar;


最好使用Object.create()作为原型,尽管您原本可以使用。

07-24 09:30