JS对象递归深度拷贝

在JavaScript中,拷贝对象分为两种方式,浅拷贝和深拷贝。

浅拷贝指两个不同的变量存的是同一个对象的地址,即两个变量指向同一块内存区域;深拷贝则是重新分配了一块内存区域来存储复制后的对象,两个变量存的是真正的两个互不影响的变量。

下面的就是浅拷贝,有时候需要保留原对象,复制出另外一份对象他用,就肯定会遇到这个问题,在修改另外的对象的时候,原对象也会跟着变化。

这是一种方法,如果对象非常多的话,可能就得考虑性能了。

// 深度拷贝
deepCopy(obj){
    if ( typeof obj != 'object' ){ // ( obj  instanceof Object || obj  instanceof Array )
        return obj;
    }
    var newobj = {};
    for ( var attr in obj) {
        newobj[attr] = this.deepCopy(obj[attr]);
    }
    return newobj;
}

部分内容来源于 js 对象拷贝

posted @   槑孒  阅读(180)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示