-
浅拷贝 (Shallow Copy) :只拷贝第一层数据,嵌套的引用类型数据共用同一块内存,修改会互相影响。
-
深拷贝 (Deep Copy) :递归拷贝所有层级数据,完全独立,修改不会互相影响。
深拷贝的 4 种实现方法:
方法 1:JSON 序列化
const deepClone = JSON.parse(JSON.stringify(obj));
方法 2:手写递归深拷贝
function deepClone(obj) {
// 基本类型直接返回
if (obj === null || typeof obj !== 'object') { return obj; }
// 区分数组和对象
const result = Array.isArray(obj) ? [] : {};
// 递归拷贝所有属性
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = deepClone(obj[key]);
} } return result;
}
方法 3::structuredClone(浏览器原生 API)
const deepClone = structuredClone(obj);