我正在使用 es6
语法。为什么属性 d
添加到对象 b
,但是当我使用 Object.defineproperty 时,属性 c
没有添加到对象 b
?
这是我的代码
var a = {
a: 1
}
var b = {
a: 5,
b: 6
}
b['d'] = 33
Object.defineProperty(b, 'c', {
value: 'eee'
})
var t = {}
Object.assign(t, a, b)
console.log(t)
最佳答案
Object.assign仅复制可枚举自己的属性。
Object.defineProperty定义不可枚举的属性,除非描述符覆盖 enumerable
的默认值 (false
)。
var a ={a:1}
var b={a:5,b:6}
b['d']=33
Object.defineProperty(b,'c',{
value:'eee',
enumerable: true
})
var t ={}
Object.assign(t,a,b)
console.log(t)
关于javascript - 为什么 object.defineproperty 不将属性添加到对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42279930/