说明
项目遇到一个问题,创建对象的时候里面有一个时间Date字段,对Date格式化操作的时候,由于是引用传递,所以会改变原来的对象,我想到了深拷贝对象,这样就会在内存地址中新开辟一个空间,完全是一个新对象。
js代码如下:
// 递归深拷贝
export default function copyObj (obj = {
}) {
let newobj = null;
//判断是否需要继续进行递归
if (typeof (obj) == 'object' && obj !== null) {
newobj = obj instanceof Array ? [] : {
}; //进行下一层递归克隆
for (var i in obj) {
newobj[i] = copyObj(obj[i])
} //如果不是对象直接赋值
} else newobj = obj;
return newobj;
}