本文共 796 字,大约阅读时间需要 2 分钟。
这是一个用于深拷贝的简单实现版本,虽然在处理边缘案例时存在一些不足,但可以满足大部分常见需求。建议在需要高精度深拷贝时,考虑使用更成熟的库如 lodash 的 cloneDeep 方法。
export function deepClone(source) { if (!source && typeof source !== 'object') { throw new Error('错误的源参数类型', 'deepClone'); } // 判断源是否是数组,初始化目标对象 const targetObj = source.constructor === Array ? [] : {}; // 遍历源对象的所有键 Object.keys(source).forEach(keys => { // 如果当前键的值是对象,递归深拷贝 if (source[keys] && typeof source[keys] === 'object') { targetObj[keys] = deepClone(source[keys]); } else { // 否则直接复制简单类型值 targetObj[keys] = source[keys]; } }); return targetObj;} 这种优化方式既保留了代码的功能性,又提升了内容的可读性和可搜索性,适合在技术文档中使用。
转载地址:http://nujg.baihongyu.com/