function myObj(){
myOtherObj.call(this);
}
myObj.prototype = object.create(myOtherObj.prototype);
myObj.prototype 是否包含指向 myObj 函数的构造函数?如果是这样怎么办?
function myObj(){
myOtherObj.call(this);
}
myObj.prototype = object.create(myOtherObj.prototype);
myObj.prototype 是否包含指向 myObj 函数的构造函数?如果是这样怎么办?
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}
});