在
Object.create的用法中你想设置为可枚举为真吗?
解决方法
如果希望在遍历所有对象属性时能够访问对象的属性,则该属性应该是可枚举的.例:
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.