wordpress app模板下载失败,昆明seo和网络推广,网站制作代码,qq公众号 wordpress在JavaScript中#xff0c;深拷贝和浅拷贝的主要区别在于它们处理对象属性的方式。
浅拷贝#xff08;Shallow Copy#xff09;只复制对象的引用#xff0c;而不是实际的对象。因此#xff0c;如果你修改了复制的对象#xff0c;原始对象也会受到影响。
深拷贝#xf…在JavaScript中深拷贝和浅拷贝的主要区别在于它们处理对象属性的方式。
浅拷贝Shallow Copy只复制对象的引用而不是实际的对象。因此如果你修改了复制的对象原始对象也会受到影响。
深拷贝Deep Copy则会创建一个新的对象并复制原始对象的所有元素。这样如果你修改了复制的对象原始对象不会受到影响。
浅拷贝示例
let obj1 { a: 1, b: { c: 2 } };
let obj2 Object.assign({}, obj1); console.log(obj1); // { a: 1, b: { c: 2 } }
console.log(obj2); // { a: 1, b: { c: 2 } } obj2.a 2;
console.log(obj1); // { a: 1, b: { c: 2 } }
console.log(obj2); // { a: 2, b: { c: 2 } } obj2.b.c 3;
console.log(obj1); // { a: 1, b: { c: 3 } }
console.log(obj2); // { a: 2, b: { c: 3 } } 在这个例子中Object.assign({}, obj1) 创建了一个新对象 obj2并将 obj1 的所有属性复制到 obj2。但是当修改 obj2.b.c 时obj1.b.c 也被修改了因为 obj1 和 obj2 共享同一个 b 对象。
深拷贝示例
let obj1 { a: 1, b: { c: 2 } };
let obj2 JSON.parse(JSON.stringify(obj1)); console.log(obj1); // { a: 1, b: { c: 2 } }
console.log(obj2); // { a: 1, b: { c: 2 } } obj2.a 2;
console.log(obj1); // { a: 1, b: { c: 2 } }
console.log(obj2); // { a: 2, b: { c: 2 } } obj2.b.c 3;
console.log(obj1); // { a: 1, b: { c: 2 } }
console.log(obj2); // { a: 2, b: { c: 3 } }
在这个例子中JSON.parse(JSON.stringify(obj1)) 创建了一个新对象 obj2并将 obj1 的所有属性复制到 obj2。然后修改 obj2.b.c 并不会影响 obj1.b.c因为 obj1 和 obj2 有不同的 b 对象。这是因为 JSON.stringify 方法将对象转换为 JSON 字符串然后 JSON.parse 方法将 JSON 字符串转换回新对象。在这个过程中所有的对象都会被转换为新的对象。