在JavaScript中,为什么不回复Object.prototype的内容?

时间:2016-05-30 15:23:03

标签: javascript node.js prototype

我知道使用for ... in循环将返回一个对象的所有属性,包括来自其原型链的那些属性,并且使用.keys()会给我一个非继承数组(基本上用于...与hasOwnProperty结合使用)但为什么在循环中没有包含从Object中引入的东西?即为什么不包含来自Object的toString函数?谢谢!

1 个答案:

答案 0 :(得分:2)

对象的属性由其键,值以及它是可配置的,可枚举的,可写的来定义。 for enumerable属性不会出现在for循环中。

当像这样创建对象属性时

select()

默认情况下,它是可配置的,可枚举的和可写的。它会出现在循环中。可以使用var myObject = {}; myObject["a"] = 3; 创建不可枚举的属性。您可以使用Object.defineProperty检查属性是否可枚举:

.propertyIsEnumerable