Javascript扩展子对象

时间:2018-04-03 20:18:27

标签: javascript

我正在尝试向object1中的obj sub添加新属性。然而它被覆盖了

const object1 = {
  a: 1,
  b: 2,
  c: 3,
  sub: {
    e: 1,
    f: 2
  }
};

const object2 = Object.assign({
  j: 4,
  m: 5
}, object1.sub);

console.log(object2);

2 个答案:

答案 0 :(得分:6)

您可以切换Object.assign的参数,因为目标是第一个。

const object = { a: 1, b: 2, c: 3, sub: { e: 1, f: 2 } };

Object.assign(object.sub, { j: 4, m: 5 });

console.log(object);

答案 1 :(得分:1)

使用ES6语法:

const object1 = { a: 1, b: 2, c: 3, sub: { e: 1, f: 2 } };
const object2 = {...object1, sub: {...object1.sub, j: 4, m: 5}}
console.log(object2)