← 返回首页
深拷贝(Deep Clone)
function deepClone(obj, map = new WeakMap()) {
if (obj === null || typeof obj !== 'object') return obj;
if (map.has(obj)) return map.get(obj); // 处理循环引用
const clone = obj instanceof Date ? new Date(obj)
: obj instanceof RegExp ? new RegExp(obj)
: Array.isArray(obj) ? []
: {};
map.set(obj, clone);
Reflect.ownKeys(obj).forEach(key => {
clone[key] = deepClone(obj[key], map);
});
return clone;
}