Object.assign函数如何工作?

时间:2018-10-25 16:37:54

标签: javascript

我想克隆一个对象,以便对其进行修改而不影响初始对象。

let object1 = {
  a: 1,
  b: 2,
  c: 3
};

let object2 = Object.assign(object1);
object2.c = 999;

console.log(object1.c, object2.c);
// expected output: 3 999
// real output: 999 999

我想我没有正确使用“分配”功能...

2 个答案:

答案 0 :(得分:6)

由于

,您需要一个空对象来为Object.assign分配属性。
Object.assign(target, ...sources)
let object2 = Object.assign({}, object1);

let object1 = {
  a: 1,
  b: 2,
  c: 3
};

let object2 = Object.assign({}, object1);
object2.c = 999;

console.log(object1.c, object2.c);

答案 1 :(得分:2)

使用Object.assign({}, object1)。 空对象将被克隆,因此object1将被添加到空对象。