js实现深拷贝

42 阅读1分钟
 function deepCopy(newObj,oldObj) {  //(新数据,被拷贝数据)
      for(key in oldObj){
            if(Array.isArray(oldObj[key])){
                // 如果数据类型是数组,必须写在最上面,
               // 因为 ( [1,2] instanceof Object === true)
                newObj[key] = []
                deepCopy(newObj[key],oldObj[key])
            }else if(oldObj[key] instanceof Object){
                //如果数据是对象类型
                newObj[key] = {}
                deepCopy(newObj[key],oldObj[key])
            } else{
                //数据是基本数据类型
                newObj[key] = oldObj[key]
            }
        }
        return newObj
    }