提问人:Marcelo Alarcon 提问时间:1/14/2023 更新时间:1/14/2023 访问量:37
Javascript 对象复制 [复制]
Javascript object copy [duplicate]
问:
我想了解为什么当我制作对象的副本并重新分配 obj2(副本)中的“nestedObject”属性时,仅在 obj2(副本)中修改,而不是在原始对象中修改。但是,当重新赋值属性 foo2 时,新值将分配给这两个对象。
let obj1 = {
foo1: 1,
nestedObj: {
foo2: 2
}
}
let obj2 = obj1
console.log(obj1);
console.log(obj2);
// { foo1: 1, nestedObj: { foo2: 2 } }
// { foo1: 1, nestedObj: { foo2: 2 } }
obj2 = obj2.nestedObj;
console.log(obj1);
console.log(obj2);
// { foo1: 1, nestedObj: { foo2: 2 } }
// { foo2: 2 }
obj2.foo2 = 3
console.log(obj1);
console.log(obj2);
// { foo1: 1, nestedObj: { foo2: 3 } }
// { foo2: 3 }
我假设区别在于按值复制或按引用复制时。但我自己还没能弄清楚。 非常感谢您的回复和时间。
我想了解为什么当我制作对象的副本并重新分配 obj2(副本)中的“nestedObject”属性时,仅在 obj2(副本)中修改,而不是在原始对象中修改。但是,当重新赋值属性 foo2 时,新值将分配给这两个对象。
答: 暂无答案
评论
structuredClone
API。