自己使用的深拷贝方法

 
// 深拷贝
deepCopy (obj) {
  // 判断是基础数据类型 还是 引用数据类型  基础数据类型直接返回
  if (!isObject(obj)){
    return obj;
  };
  // 判断是否是日期类型  日期类型默认前延 8个小时  加上8个消失
  if(obj instanceof Date){
    return new Date(new Date(obj).valueOf() + (8 * 3600 * 1000));
  }
  // 判断是对象还是数组
  var result = Array.isArray(obj) ? [] : {};
  for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
      if (typeof obj[key] === 'object' && obj[key]!==null) {
        result[key] = this.deepCopy(obj[key]); //递归复制
      } else {
        result[key] = obj[key];
      }
    }
  }
  return result;
  function isObject (obj) {
    return typeof obj == 'object' && obj !== null;
  }
}
原文地址:https://www.cnblogs.com/Mr-Rshare/p/12579750.html