为什么Object.prototype看起来像一个空对象?

时间:2013-08-20 13:40:43

标签: javascript

console.log(Object.prototype); // -> "{}"

我希望console.log(Object.prototype)输出一些属性或类似“toString”的方法。
为什么不呢?

1 个答案:

答案 0 :(得分:6)

默认方法未标记为可枚举,因此在查看Object.prototype时无法显示。

原因很简单:当使用for(var prop in object)查看某个对象或更重要的迭代其属性时,通常不希望看到任何默认方法。当然,人们总是可以在这样的循环中使用obj.hasOwnProperty(prop)检查,但是通过知道默认情况下Object.prototype上没有任何可枚举的东西(并且良好的代码不会添加可枚举的属性),这是非常舒服的。它也是。)