js数组深度克隆

 1 var a =[],b=[];
 2 a[0]={name:'w',text:2};
 3 a[1]={name:'a',text:3};
 4 a[2]={name:'b',text:4};
 5 b =a.cloneArray();
 6 function objClone(myObj){
 7     if(typeof(myObj) != 'object') return myObj;
 8     if(myObj == null) return myObj;
 9     var myNewObj = new Object();
10     for(var i in myObj)
11     myNewObj[i] = objClone(myObj[i]);
12     return myNewObj;
13 }
14   Array.prototype.cloneArray=function(){//为数组添加克隆自身方法,使用递归可用于多级数组
15     var newArr=new Array();
16     for(var i=0;i<=this.length-1;i++)
17     {
18        var itemi=this[i];
19        if(itemi.length && itemi.push) itemi= itemi.cloneArray();//数组对象,进行递归
20        else if(typeof(itemi)=="object") itemi=objClone(itemi);//非数组对象,用上面的objClone方法克隆
21        newArr.push(itemi);
22     }
23     return newArr;
24   }
原文地址:https://www.cnblogs.com/liwei45212/p/3026349.html