Object.assign函数如何工作?

Ser*_*rge 1 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
Run Code Online (Sandbox Code Playgroud)

我想我没有正确使用"赋值"功能......

Nin*_*olz 6

您需要一个空对象来分配属性Object.assign,因为

Object.assign(target, ...sources)
Run Code Online (Sandbox Code Playgroud)
let object2 = Object.assign({}, object1);
Run Code Online (Sandbox Code Playgroud)

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

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

console.log(object1.c, object2.c);
Run Code Online (Sandbox Code Playgroud)