背景

理论开发中,解决数据常常会应用到数据拷贝。其实应用JSON.stringify()与JSON.parse()来实现深拷贝是很不错的抉择。

然而当拷贝的数据为undefined,function(){}等时拷贝会为空,这时就须要采纳递归拷贝。

应用JSON实现拷贝时,留神拷贝数据,看是否适宜应用。

以下是手写简略深拷贝

代码

/** * @param obj * @description 深拷贝 */export const deepClone = (obj: any) => {  // 判断是否须要递归  if (typeof obj !== 'object' || obj == null) {    return obj;  }  let result: any;  if (obj instanceof Array) {    result = [];  } else {    result = {};  }  for (let key in obj) {    if (obj.hasOwnProperty(key)) {      result[key] = deepClone(obj[key]);    }  }  return result;};export default deepClone;