这里提供一种简单的实现方式:

function deepClone(obj) {  
if (obj === null || typeof obj !== 'object') {  
    return obj;  
}  
const newObj = Array.isArray(obj) ? [] : {};  
for (let key in obj) {  
    newObj[key] = deepClone(obj[key]);  
}  
return newObj;  
}

这个函数接受一个对象作为参数,如果传入的对象是 null 或者不是对象类型,直接返回该对象。如果是数组类型,返回一个新的空数组,否则返回一个新的空对象。

接着,使用 for-in 循环遍历原对象的所有属性,对每个属性进行递归调用 deepClone 函数,将其拷贝到新的对象中。

这个函数的实现方式比较简单,但是需要注意的是,对于一些特殊的对象类型,比如 Date、RegExp 等,需要特殊处理,否则可能会出现意外的结果。

JavaScript 深度克隆对象实现方法

原文地址: https://www.cveoy.top/t/topic/nasp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录