关于不可枚举属性
在MDN上看到这样一个例子:
var obj = Object.create({foo: 1}, { // foo 是个继承属性。
bar: {
value: 2 // bar 是个不可枚举属性。
},
baz: {
value: 3,
enumerable: true // baz 是个自身可枚举属性。
}
});
var copy = Object.assign({}, obj);
console.log(copy); // { baz: 3 }
里面为什么说bar是个不可枚举属性呢? 网上搜索的答案看不太懂。
4 回复
Object.create() 好像是只添加属性值,那么 enumerable 值默认是 false
语法
Object.create(proto, [propertiesObject])
参数
proto
新创建对象的原型对象。
propertiesObject
可选。如果没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应Object.defineProperties()的第二个参数。
然后再跳到Object.defineProperties()去看关于枚举,不特意去细细真看不出来。》。《
@waitingsong 是的