//_tmp和result是相互独立的,没有任何联系,有各自的存储空间。
let deepClone = function (obj) {
let _tmp = JSON.stringify(obj);//将对象转换为json字符串形式
let result = JSON.parse(_tmp);//将转换而来的字符串转换为原生js对象
return result;
};
let obj1 = {
weiqiujaun: {
age: 20,
class: 1502
},
liuxiaotian: {
age: 21,
class: 1501
}
};
let test = deepClone(obj1);
console.log(test);
因为个人常使用vue所以在下面把代码转换vue写法,方便本人复制
export default{
data(){
dataOne:{},
dataTwo:{},
}
methods:{
deepClone(obj){
let _tmp = JSON.stringify(obj);//将对象转换为json字符串形式
let result = JSON.parse(_tmp);//将转换而来的字符串转换为原生js对象
return result;
},
get_list(){
let dataList = {aaa:abc,bbb:acb,ccc:bac}
this.dataOne = dataList //拷贝前
this.dataTwo = this.deepClone(dataList) //拷贝后
this.dataTwo.ddd = abcd
console.log(this.dataOne)
///{aaa:abc,bbb:acb,ccc:bac}
console.log(this.dataTwo)
///{aaa:abc,bbb:acb,ccc:bac,ddd:abcd}
}
}
}
原文链接:https://blog.csdn.net/qq_39083004/article/details/80206336
网友评论