深度克隆与浅度克隆

2021-05-17  本文已影响0人  guangyan24

浅度克隆

function clone(origin,target){
    var target = target || {};
    for(var prop in origin){
        target[prop]=origin[prop];
    }
    return target;
}

深度克隆

function deepClone(origin,target){
    var target = target || {};
    var toStr = Object.prototype.toString;
    var arrStr = "[object Array]";
    for(var prop in origin){
        if(origin.hasOwnProperty(prop)){
            if(origin[prop]!="null" && typeof(origin[prop])=='object'){
                if(toStr.call(origin[prop])==arrStr){
                    target[prop]=[];
                }else{
                    target[prop]={};
                }
                deepClone(origin[prop],target[prop]);
            }else{
                target[prop]=origin[prop];
            }
        }
    }
    return target;
}
上一篇 下一篇

猜你喜欢

热点阅读