2013-02-14 51 views

回答

1

myObj.prototype是否包含指向myObj函數的構造函數?如果是的話如何?

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} 
}); 
+0

從「沒必要」鏈接,我認爲'instanceof'運算符通過原型鏈查看構造函數屬性,是不是這種情況?如果是這樣的話,我會有一段很糟糕的誤解。 – 0xor1 2013-02-15 08:14:38

+0

不,['a instanceof B'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/instanceof)遍歷'a'的原型鏈,直到找到'B.原型'在裏面。原型鏈中對象的'constructor'屬性與此無關。 – Bergi 2013-02-15 13:09:07

相關問題