我想克隆一个对象,以便对其进行修改而不影响初始对象。
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
我想我没有正确使用“分配”功能...
答案 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
将被添加到空对象。