如果每个对象最终都从最高级别的Object继承而且最高级别的Object具有getPrototypeOf()函数/方法,为什么以下代码会产生错误?
obj = {};
proto = obj.getPrototypeOf(obj);
错误:对象不支持属性或方法'getPrototypeOf'
当我查看IE10(F12开发人员工具)的Locals选项卡时,它说obj有一个原型,那个原型有方法,其中一个是isPrototypeOf。
这是我完整的HTML:
<!DOCTYPE html>
<html>
<head>
<script>
obj = {};
proto = obj.getPrototypeOf(obj);
</script>
</head>
<body>
</body>
</html>
请注意:我特别问为什么它在obj的原型下显示为一种方法,但却产生错误(如果它只是一个Object的方法,而不是继承的原型)?我会发布它的截图,但由于我是新手,我的声誉太低了。
答案 0 :(得分:2)
getPrototypeOf
位于Object
对象上,而不是对象的实例,请尝试
obj = {};
proto = Object.getPrototypeOf(obj);
答案 1 :(得分:0)
这是因为getPrototypeOf
不是所有对象的方法,它是... Object
对象上的方法。使用Object.getPrototypeOf(obj)
。
答案 2 :(得分:0)
试
obj = {};
proto = Object.getPrototypeOf(obj)