深拷贝与浅拷贝

深拷贝与浅拷贝

浅拷贝

数组和对象的赋值都属于浅拷贝。

深拷贝

解构赋值一维数组是深拷贝,多维数组浅拷贝:[...arr];

用法:

  1. JSON.parse(JSON.stringfy(list));

  2. 标准的深拷贝代码:专门针对于引用数据类型(数组和对象)

    function deepClone(source){
        // [] => Array; {} => Object
        const targetObj = source.constructor === Array ? [] : {};
        for(let keys in targetObj){
            if(source.hasOwnProperty(keys)){
                // 判断数据类型是基本数据类型或者引用数据类型
                if(source[keys] && typeof source[keys] === 'object'){
                    // 维护层代码
                    targetObj[keys] = source[keys].construcor === Array ? [] : {};
                    // 递归实现
                    targetObj[keys] = deepClone(source[keys]);
                } else {
                    // 基本数据类型,直接赋值
                    targetObj[keys] = source[keys];
                }
            }
        }
        return targetObj;
    }
    

posted @   是熙穆吖~  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示