深拷贝函数用于实现将一个对象/数组完全克隆一份,新克隆出来的对象与原对象完全独立,二者互不影响。
目录
1、函数
function deepClone(obj) {
if (!obj || typeof obj !== 'object') {
return obj;
}
if (obj instanceof Date) {
return new Date(obj.getTime());
}
if (obj instanceof RegExp) {
return new RegExp(obj);
}
let target = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
target[key] = deepClone(obj[key]);
}
}
return target;
}
2、测试
let obj = { a: 1, b: 2, c: { d: 3 } };
let result= deepClone(obj);
console.log(result); // { a: 1, b: 2, c: { d: 3 } }