手写深拷贝

111 阅读1分钟
function f(obj={}){
    //判断 obj不等于对象或者等于空直接返回
    if(typeof obj !=='object'||obj==null){
        return obj
    }
    //初始化值
    var a
    if(obj instanceof Array){  //判断用instanceof 判断obj如果是对象的话就返回一个对象 
        a=[]
    }else{
        a={}
    }
    for (var key in obj){  //然后用for in循环  循环出key值
        //判断不是原型是数据
        if(obj.hasOwnProperty(key)){
            a[key]=f(obj[key])
        }
    }
    return a
}