JavaScript深拷贝

      /** 深拷贝,防止在获取全局变量时,改变全局变量的值
      * This is just a simple version of deep copy
      * Has a lot of edge cases bug
      * If you want to use a perfect deep copy, use lodash's _.cloneDeep
      */
    function deepClone(source) {
        if (!source && typeof source !== 'object') {
            throw new Error('数据类型错误')
        }
        const targetObj = source.constructor === Array ? [] : {}
        Object.keys(source).forEach((keys) => {
            if (source[keys] && typeof source[keys] === 'object') {
                targetObj[keys] = deepClone(source[keys])
            } else {
                targetObj[keys] = source[keys]
            }
        })
        return targetObj
    }
原文地址:https://www.cnblogs.com/wtao0730/p/15433379.html