AI生成--浅拷贝、深拷贝

浅拷贝和深拷贝都是对JavaScript中对象的复制操作。浅拷贝只复制对象的基本属性,而深拷贝则会递归地复制对象的所有属性。

具体区别:

  • 浅拷贝:复制对象的基本属性,如果属性是引用类型,只复制引用而不复制引用指向的对象,复制后的对象和原始对象指向同一个地址空间。
  • 深拷贝:递归地复制对象的所有属性,包括基本类型和引用类型,复制后的对象和原始对象指向不同的地址空间,修改复制后对象的属性不会影响原始对象。

示例代码:

// 浅拷贝示例
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = Object.assign({}, obj1); // 使用Object.assign()方法进行浅拷贝
obj2.a = 3;
obj2.b.c = 4;
console.log(obj1); // { a: 1, b: { c: 4 } }
console.log(obj2); // { a: 3, b: { c: 4 } }

// 深拷贝示例
const obj3 = { a: 1, b: { c: 2 } };
const obj4 = JSON.parse(JSON.stringify(obj3)); // 使用JSON.parse()和JSON.stringify()方法进行深拷贝
obj4.a = 3;
obj4.b.c = 4;
console.log(obj3); // { a: 1, b: { c: 2 } }
console.log(obj4); // { a: 3, b: { c: 4 } }

你可能感兴趣的:(AI生成,javascript,前端,vue.js,AI生成)