javascript - 为什么 object.defineproperty 不将属性添加到对象?

标签 javascript

我正在使用 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)

https://es6console.com/iz8m4ux1/

最佳答案

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/

相关文章:

javascript - 循环遍历表单中的字段

javascript - 数据验证php/mysql/jquery

javascript - 在 .env 文件中使用私钥

javascript - 使用显示 : none visible again + Loading Image before <li> 制作 HTML Div

Javascript — 操作动态加载(或自动分页)内容的属性

javascript - Reactjs如何管理组件之间的多种交互

javascript - 西西弗斯自动保存网页表单不起作用

javascript - 如何将 JavaScript 事件处理程序添加到 ASP 控件上动态生成的文本框

javascript - DataTables - 在react中调用 'columnDefs'中的函数

javascript - 在 HTML 链接中声明 JavaScript 变量