深度克隆与浅度克隆

浅度克隆

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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容