1
function myObj(){
    myOtherObj.call(this);
}

myObj.prototype = object.create(myOtherObj.prototype);

myObj.prototype 是否包含指向 myObj 函数的构造函数?如果是这样怎么办?

4

1 回答 1

1

myObj.prototype 是否包含指向 myObj 函数的构造函数?如果是这样怎么办?

Object.create,只会创建一个从给定对象继承的对象。在您的情况下,它myOtherObj.prototype很可能具有现在继承的“构造函数”属性(myObj.prototype.constructor=== myOtherObj.prototype.constructor=== myOtherObj)。

不是必需的,但是如果您想调整属性以便(new myObj).constructor=== myObj.prototype.constructor===myObj您可以通过将第二个参数传递给来做到这一点Object.create

myObj.prototype = Object.create(myOtherObj.prototype, {
    constructor: {value:myObj, writable:true, enumerable:false, configurable:true}
});
于 2013-02-14T23:00:13.480 回答