javascript - 用 object.create 定义的原型(prototype)的构造函数属性从哪里来?

标签 javascript prototype

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

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

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

最佳答案

Does myObj.prototype contain a constructor pointing at myObj function? And if so how?

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

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

myObj.prototype = Object.create(myOtherObj.prototype, {
    constructor: {value:myObj, writable:true, enumerable:false, configurable:true}
});

关于javascript - 用 object.create 定义的原型(prototype)的构造函数属性从哪里来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14883347/

相关文章:

javascript - 如何通过从服务器调用 gif 来检查是否存在互联网连接?

javascript - JS反转概率

javascript - 追加并更改 div 后删除 div

c - 如何向 ISO 技术委员会提交变更或要求澄清

javascript - 如何使用javascript填写表单域并提交?

javascript - jquery 在 div 悬停时更改图像路径并使其类处于事件状态?

javascript - 我们应该使用 JavaScript 继承的哪些变体以及为什么?

javascript - JavaScript 中的原型(prototype)和构造函数(简单的英语)?

Javascript:在for循环中隐藏原型(prototype)方法?

javascript - Html 用原型(prototype)解码?