js深拷贝

js深拷贝代码

function deepClone(data) {
        var t = type(data), o, i, ni;      
        if(t === 'array') {
            o = [];
        }else if( t === 'object') {
            o = {};
        }else {
            return data;
        }    
        if(t === 'array') {
            for (i = 0, ni = data.length; i < ni; i++) {
                o.push(deepClone(data[i]));
            }
            return o;
        }else if( t === 'object') {
            for( i in data) {
                o[i] = deepClone(data[i]);
            }
            return o;
        }
}

关于function范例,这里是直接赋值的,同享一个内存值。这是由于函数更多的是完成某些功用,有个输入值和返回值,而且关于上层营业而言更多的是完成营业功用,并不需要真正将函数深拷贝。

    原文作者:flyer_dev
    原文地址: https://segmentfault.com/a/1190000006729851
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞