首页 > 代码库 > js --- 深复制,浅复制
js --- 深复制,浅复制
1 //浅复制 2 var obj={ 3 a:{ 4 son1:‘aa‘, //obj对象里的a也是个对象 5 son2:‘bb‘ 6 }, 7 b:20 8 }; 9 10 function copy(obj){ 11 var newobj={}; 12 for(arr in obj) 13 { 14 newobj[arr]=obj[arr] 15 } 16 return newobj; 17 } 18 19 obj2=copy(obj); 20 alert(obj2.a.son1);//成功复制出obj的a 21 obj.a.son1=555; //更改了obj的a.son2 22 alert(obj2.a.son1);//obj2的a.son1也随之改变
//深复制var obj={ a:{aa:10},//浅拷贝解决不了对象中的对象 b:11 }; function deepcopy(obj){ if(typeof obj!=‘object‘) //检验是否彻底 { return obj; } var newobj={}; for(var attr in obj) { newobj[attr]=deepcopy(obj[attr]); //递归 (核心代码) } return newobj; } var obj2=deepcopy(obj); alert(obj.a.aa);//10 alert(obj2.a.aa);//10 成功复制深层对象aa obj2.a.aa=22; //改变obj2的a的aa alert(obj2.a.aa);// 改变 alert(obj.a.aa);//10 不变
js --- 深复制,浅复制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。