我得到的输出是 5,但我假设是 3。背后的逻辑是什么以及如何使输出 3。
const obj = {
a: 1,
b: 2,
c: {
p: 3
}
}
const obj1 = { ...obj}
obj.c.p = 5
console.log(obj1.c.p)Run Code Online (Sandbox Code Playgroud)
上面仅克隆了第一层,因此更改 的objdeep 属性将更改中的引用obj1
const obj = {
a: 1,
b: 2,
c: { p: 3 }
};
const obj1 = { ...obj, c: {...obj.c} };
obj.c.p = 5;
console.log(obj1.c.p);Run Code Online (Sandbox Code Playgroud)