# 对象深拷贝

# 1. 介绍

通过递归深拷贝一个对象(或数组)

# 2. 示例

function deepClone(target: any): any {
  if (Array.isArray(target)) {
    return target.map((item) => deepClone(item));
  }

  if (typeof target === 'object' && target !== null) {
    const clone: { [key: string]: any } = {};

    const keys = Reflect.ownKeys(target) as string[];

    for (let i = 0; i < keys.length; i += 1) {
      const key = keys[i];
      clone[key] = deepClone(target[key]);
    }

    return clone;
  }

  return target;
}

# 3. 参考

本章目录