js深度克隆

function deepClone(o) {
      // 判断如果不是引用类型,直接返回数据即可
      if (typeof o === 'string' || typeof o === 'number' || typeof o === 'boolean' || typeof o === 'undefined') {
        return o
      } else if (Array.isArray(o)) { // 如果是数组,则定义一个新数组,完成复制后返回
        var _arr = []
        o.forEach(item => { _arr.push(item) })
        return _arr
      } else if (typeof o === 'object') {
        var _o = {}
        for (let key in o) {
          _o[key] = deepClone(o[key])
        }
        return _o
      }
    }
posted @ 2020-12-04 11:15  起风了1573  阅读(79)  评论(0)    收藏  举报