js 深度拷贝的几种方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/document_dom/article/details/88537629

第一种


	function deepClone(obj){
            var str,newObj = obj instanceof Array? [] : {};
            if(typeof obj !== 'object'){
                return;
            }else if(window.json){
                str = JSON.stringify(obj);
                newObj = JSON.parse(str);
            }else{
                for(var i in obj){
                    newObj[i]=typeof obj[i]==='object'?deepClone(obj[i]):obj[i]
                }
            }
            return newObj;
        }

第二种

function deepClone(obj,newObj){
            var newObj = newObj || {};
            for(key in obj){
                if(typeof obj[key] == 'object'){
                    newObj[key] = (obj[key].constructor === Array)?[]:{}
                    deepClone(obj[key],newObj[key]);
                }else{
                    newObj[key] = obj[key]
                }
            }
            return newObj;
        }    

猜你喜欢

转载自blog.csdn.net/document_dom/article/details/88537629
今日推荐