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 }