【发布时间】:2026-01-22 13:55:01
【问题描述】:
您想将enumerable 设置为true 的Object.create 的哪些用途?
【问题讨论】:
标签: javascript object enumeration ecmascript-5 enumerable
您想将enumerable 设置为true 的Object.create 的哪些用途?
【问题讨论】:
标签: javascript object enumeration ecmascript-5 enumerable
如果您希望在遍历所有对象属性时能够访问它,则该对象的属性应该是可枚举的。示例:
var obj = {prop1: 'val1', prop2:'val2'};
for (var prop in obj){
console.log(prop, obj[prop]);
}
在这种类型的实例化中, enumerable 始终为真,这将为您提供以下输出:
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。
【讨论】:
enumerable在Object.create中默认为false