1

如果每个对象最终都继承自最高级别的 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 的方法,而不是继承的原型)?我会发布它的屏幕截图,但我的声誉太低,因为我是新手。

4

3 回答 3

2

getPrototypeOfObject对象上而不是在对象的实例上,试试

obj = {};
proto = Object.getPrototypeOf(obj);
于 2013-10-09T00:45:02.840 回答
0

这是因为getPrototypeOf不是所有对象的方法,它是...Object对象的方法。使用Object.getPrototypeOf(obj).

于 2013-10-09T00:45:10.800 回答
0

尝试

obj = {};
proto = Object.getPrototypeOf(obj)
于 2013-10-09T00:45:50.830 回答