#每天一个知识点# 递归复制方法是一种深拷贝对象的方法,通过递归地复制对象的每个属性来实现。下面是一个使用递归复制方法实现深拷贝的示例代码:
function deepCopy(obj) {
if (typeof obj !== "object" || obj === null) {
return obj;
}

let copy = Array.isArray(obj) ? [] : {};

for (let key in obj) {
if (obj.hasOwnProperty(key)) {
copy[key] = deepCopy(obj[key]);
}
}

return copy;
}
在上面的代码中,我们首先判断对象是否是基本类型,如果是则直接返回该对象。否则,我们创建一个空对象或数组,并遍历原始对象的每个属性。对于每个属性,我们递归地调用 deepCopy 函数,将其值复制到新对象中。最后返回新对象。

需要注意的是,如果对象中包含循环引用,使用递归复制方法可能会导致栈溢出。因此,在实际应用中,需要谨慎处理循环引用的情况。
展开
评论