dwe*_*ner 6 javascript inheritance node.js
我在尝试利用Object.defineProperty()基础对象时遇到了挂起.我想继承该对象的属性,使用Object.create(),然后在派生对象中定义更多属性(可以从那里继承).我应该注意到我的目标是node.js.
这是一个例子:
var Base = {};
Object.defineProperty(Base, 'prop1', {
    enumerable:true,
    get:function(){ return 'prop1 value';}
});
Object.defineProperty(Base, 'prop2', {
    enumerable:true,
    value : 'prop 2 value'
});
Object.defineProperty(Base, 'create', {
    value:function(){
        return Object.create(Base);
    }
});
console.log(Base);
var derived = Base.create();
Object.defineProperty(derived, 'prop3', {
    enumerable:true,
    value:'prop 3 value'
});
console.log(derived);
其中输出如下:
{ prop1: [Getter], prop2: 'prop 2 value' }
{ prop3: 'prop 3 value' }
我认为console.log()会枚举继承的属性,以及prop3我在派生对象上定义的属性.它似乎没有查找以这种方式定义的属性的原型层次结构.那是对的吗?
我看着覆盖toString()我的对象的方法,但似乎console.log()不会调用它.
编辑:
您可以console.dir()在可用的地方使用
console.dir(derived) 
它会在对象上显示__proto__对象的继承属性
编辑:虽然似乎没有出现在节点上