Object.create中的可枚举参数是什么?

时间:2012-01-27 20:49:16

标签: javascript object enumeration ecmascript-5 enumerable

您希望将enumerable设置为true,使用Object.create的用法是什么?

1 个答案:

答案 0 :(得分:10)

如果希望在遍历所有对象属性时能够访问对象的属性,则该属性应该是可枚举的。例如:

var obj = {prop1: 'val1', prop2:'val2'};
for (var prop in obj){
  console.log(prop, obj[prop]);
}

在这种类型的实例化中,enumerable始终为true,这将为您提供输出:

prop1 val1
prop2 val2

如果你像这样使用Object.create():

obj = Object.create({}, { prop1: { value: 'val1', enumerable: true}, prop2: { value: 'val2', enumerable: false} });

你的for循环只能访问prop1,而不是prop2。使用Object.create()默认情况下,属性设置为enumerable = false。