在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)
W
Object.create() 好像是只添加属性值,那么 enumerable 值默认是 false
A
Z
引用 atian25多看 MDN https://developer.mozilla.org/zh CN/docs/Web/JavaScript/Enumerability and ownership of pr...
@atian25
语法
Object.create(proto, [propertiesObject])
参数
proto
新创建对象的原型对象。
propertiesObject
可选。如果没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应Object.defineProperties()的第二个参数。
然后再跳到Object.defineProperties()去看关于枚举,不特意去细细真看不出来。》。《
Z
参与回复
登录后即可参与回复。登录