js对象简单深拷贝

Posted fengnovo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js对象简单深拷贝相关的知识,希望对你有一定的参考价值。

function deepClone(obj1,obj2){
        var obj2=obj2||{}; //最初的时候给它一个初始值=它自己或者是一个json
        for(var name in obj1){
            if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象
                obj2[name]= (obj1[name].constructor===Array)?[]:{}; //我们让要复制的对象的name项=数组或者是json
                deepClone(obj1[name],obj2[name]); //然后来无限调用函数自己 递归思想
            }else{
                obj2[name]=obj1[name];  //如果不是对象,直接等于即可,不会发生引用。
            }
        }
        return obj2; //然后在把复制好的对象给return出去
}

 

以上是关于js对象简单深拷贝的主要内容,如果未能解决你的问题,请参考以下文章

js手写深拷贝的实现

js对象简单深拷贝

js对象浅拷贝和深拷贝详解

jquery怎样深拷贝一个数组

js中对象的复制,浅复制(浅拷贝)和深复制(深拷贝)

手写JS深拷贝-考虑各种数据类型和循环引用