前言:在日常开发中需要复制一条数据。此时如果用变量等号赋值或者object.assign();方法,然后操作改变新赋值对象的值会影响原对象的值。此时深拷贝对象就应用而生。
//深复制对象方1:
export function deepCopy(obj) {
var result = Array.isArray(obj) ? [] : {};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key]!==null) {
result[key] = deepCopy(obj[key]); //递归复制
} else {
result[key] = obj[key];
}
}
}
return result;
}
//深复制对象方2:
let obj={a:1,b:{a:2,b:2}};
let strJson=jons.stringify(obj);// 序列化:对象的类型转换成字符串类型。
left copyObj=Json.parse(strson);//反序列化:字符串类型的类型转换成对象。