`

/**
 * 深拷贝
 * @param {object} obj 要拷贝的对象
 */
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是不是这个对象所拥有的属性,保证key不是原型的属性
        if(obj.hasOwnProperty(key)){
            // 递归调用!!!
            result[key]= deepClone(obj[key]);
        }
    }

    return result;
}

`
出现循环引用的时候会报错!!!
待完善。。。


kangting
62 声望3 粉丝

一只小小的前端