vue js递归克隆 深拷贝对象 复制数组

说明

项目遇到一个问题,创建对象的时候里面有一个时间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;
}

猜你喜欢

转载自blog.csdn.net/qq_43813351/article/details/129487215