深拷贝具体版,非完全,但大部分都可以

2020-05-05  本文已影响0人  冬至_5b58
// 检查类型函数
export const checkType = data => Object.prototype.toString.call(data).slice(8, -1)
// 深复制数据函数
export const deepClone = target => {
  let targetType = checkType(target)
  let result
  if (targetType === 'Object') {
    result = {}
  } else if (targetType === 'Array') {
    result = []
  } else {
    return target
  }
  for (let i in target) {
    let value = target[i]
    let valueType = checkType(value)
    if (valueType === 'Object' || valueType === 'Array') {
      result[i] = deepClone(value)
    } else {
      result[i] = value
    }
  }
  return result
}
上一篇下一篇

猜你喜欢

热点阅读