【发布时间】:2014-06-19 09:52:20
【问题描述】:
我很难理解 Object.getPrototypeOf(o)。我在下面的代码中使用该方法。
var obj0 = {x: 10};
var obj1 = Object.create(null, {
'name': {value: 'first object name', enumerable: false},
});
var obj2 = Object.create(obj1, {
'location': {value: 'second object location'},
});
alert(Object.getPrototypeOf(obj0)); // [object Object]
alert(Object.getPrototypeOf(obj1)); // null
alert(Object.getPrototypeOf(obj2)); // TypeError: Cannot convert object to primitive value
如果有任何提示,我将不胜感激:
1/ 为什么object2返回TypeError?
2/ Object.getPrototypeOf 方法是否总是返回 [object Object] 作为原型链中的“最高对象”?我会假设它会给我它是链中“最近”的对象,所以前。如果有 obj3 以 obj0 作为原型,它会给我 [obj0 Object] 而不是 [object Object]。
【问题讨论】:
标签: javascript ecmascript-5 prototype-programming