4
我想了解對象創建的工作方式以及使用Object.create()
創建的對象的相應原型。我有以下代碼:Object.create()的默認行爲
var obj = Object.create({name: "someValue"});
console.log(Object.getPrototypeOf(obj)); // => Object{name: "someValue"}
console.log(obj.constructor.prototype); // => Object{}
// check if obj inherits from Object.prototype
Object.prototype.isPrototypeOf(obj); // => true
是否正確斷言的代碼的最後一行,因爲對象{name: "someValue"}
本身的Object.prototype繼承返回true?有沒有更好的解釋呢?
只需要注意,另一種驗證確實如此的方法是通過執行Object.getPrototypeOf(Object.getPrototypeOf(obj))=== Object.prototype'。 'Object.prototype'表示執行'new Object()'時所調用的對象的原型或更常見的直接文字符號。 –
#note-to-self由於Object.getPrototypeOf()返回一個'object',所以可以使用Benjamin Gruenbaum使用的嵌套函數調用樣式。 – gabeno