深拷贝

2020-11-23  本文已影响0人  素明诚
function deepClone(obj = {}) {
    if (typeof obj !== 'object' || obj == null) {
        //obj 是 null , 或者 不是对象和数组,直接返回
        return obj
    }
    //初始化返回结果
    let result
    if (obj instanceof Array) {
        result = []
    } else {
        result = {}
    }
    for (let key in obj) {
        //保证 key 不是原形的属性
        if( obj.hasOwnProperty(key) {
                //递归调用
                result[key] = deepClone(obj[key])
            }
        }
        //返回结果
        return result
    }
上一篇 下一篇

猜你喜欢

热点阅读