Object.create有哪些用途?是否要将 enumerable
设置为 true
?
最佳答案
如果您希望在遍历所有对象属性时能够访问某个对象的属性,则该对象的属性应该是可枚举的。示例:
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。
关于javascript - Object.create 中的可枚举参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9039860/