浅拷贝深拷贝
浅拷贝
浅拷贝会创建一个新对象或数组,但新对象/数组的元素仍然引用原对象/数组中的相同内存地址。当修改其中一个对象/数组的属性时,另一个对象/数组也会受到影响。
实现方法
一、使用展开运算符(Spread Operator)进行浅拷贝
const original = { name: 'John', age: 30 };
const shallowCopy = { ...original };
const original = [1, 2, 3, 4];
const shallowCopy = [...original];
二、使用Object.assign()进行浅拷贝
const original = { name: 'John', age: 30 };
const shallowCopy = Object.assign({}, original);
const original = [1, 2, 3, 4];
const shallowCopy = Object.assign([], original);
深拷贝
深拷贝会创建一个完全独立的新对象或数组,新对象/数组中的元素与原对象/数组中的元素不共享内存地址。当修改其中一个对象/数组的属性时,另一个对象/数组不会受到影响。
一、使用JSON.parse()和JSON.stringify()进行深拷贝
const original = { name: 'John', age: 30 };
const deepCopy = JSON.parse(JSON.stringify(original));
const original = [1, 2, 3, 4];
const deepCopy = JSON.parse(JSON.stringify(original));