【问题标题】:What is the enumerable argument for in Object.create?Object.create 中的可枚举参数是什么?
【发布时间】:2026-01-22 13:55:01
【问题描述】:

您想将enumerable 设置为trueObject.create 的哪些用途?

【问题讨论】:

标签: javascript object enumeration ecmascript-5 enumerable


【解决方案1】:

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

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。

【讨论】:

  • 注意enumerableObject.create中默认为false
  • 谢谢,我指的是另一个实例化。我忘了提。我将编辑我的答案