Js 克隆
2020-12-13 04:08
标签:c a 数据 cti 类 type 1.浅表克隆 调用concate() 或者slice()
方法,可以创建数组的浅表副本,在浅表副本中,如果原始数组的元素是复杂数据类型,则元素值指向对象的引用而非对象本身, 与原始数组一样,浅表副本的元素值也是指向对象引用,对对象所做的任何更改都会在两个数组中反映出来。 2.深度克隆 深度克隆是相对于浅表而言的,在克隆的深度副本中,不断复制索引,还将复制原始数组中的所有对象,从而使新数组和原始数组指向不同对象。 实现的一个方法: function cloneArray(_arry ,deep){ 测试方法: var p ={sex:1,ages:32}; Js 克隆,搜素材,soscw.com Js 克隆 标签:c a 数据 cti 类 type 原文地址:http://www.cnblogs.com/linsu/p/3731504.html
var newArray=[];
if(deep){
for(var i in _arry){
var prop
=_arry[i];
if(typeof prop ==‘object‘){
if(prop instanceof
Array){
newArray[i]=[];
for(var
j=0;j
newArray[i].push(prop[j]);
}
else{
newArray[i].push(cloneArray(prop[j]),true);
}
}
}
else{
newArray[i]=cloneArray(prop,true);
}
}
else{
newArray[i]=prop;
}
}
}
else{
newArray=_arry.concat();
}
return
newArray;
}
var a =["tomn",p];
var newarray
=cloneArray(a,false);
alert(newarray[1].sex);
p.sex=2;
alert(newarray[1].sex);