网站设计网络推广关键词,广东省住房和城乡建设厅网站进不去,怎么做自己的微信公众号,网站开发招聘职位区分
B复制了A的值#xff0c;如果A被修改#xff0c;B的值也被改变#xff0c;那就是浅拷贝。
如果B的值没有跟着修改#xff0c;那就是深拷贝
深浅拷贝的方式
1、遍历赋值
2、Object.create()
3、JSON.parse()和JSON.stringify()
浅拷贝-遍历 let a {name:…区分
B复制了A的值如果A被修改B的值也被改变那就是浅拷贝。
如果B的值没有跟着修改那就是深拷贝
深浅拷贝的方式
1、遍历赋值
2、Object.create()
3、JSON.parse()和JSON.stringify()
浅拷贝-遍历 let a {name:jack,obj:{str:ccc,arr:[1,2,3]},arr:[4,5,6]}let b {};for(let i in a){b[i] a[i];}
// console.log(a);a.arr[1] aaa;console.log(b); 深拷贝-递归 let a {name:jack,obj:{str:ccc,arr:[1,2,3]},arr:[4,5,6]}
function deepclone(startobj,endobj){let obj endobj || {};for(let i in startobj){if(typeof startobj[i] object){obj[i] startobj[i].constractor Array ? [] : {};deepclone(startobj[i],obj[i]);}else{obj[i] startobj[i];}}return obj;}
let b deepclone(a);console.log(a);console.log(b);a.obj.str nerwwww;console.log(a);console.log(b); 深拷贝-JSON.parse、JSON.stringfy let a {name:jack,obj:{str:ccc,arr:[1,2,3]},arr:[4,5,6]}
let b JSON.parse(JSON.stringify(a));
console.log(a);console.log(b);a.obj.str nerwwww;console.log(a);console.log(b);