说说深拷贝与浅拷贝,浅拷贝只拷贝对象的一般属性,而拷贝对象下数组和object则只能获得其内存地址。所谓"深拷贝",就是能够实现真正意义上的数组和对象的拷贝。

    深拷贝:


     function extendCopy(p){
            var c = {};
            for(var i in p){
                c[i] = p[i];
            }
            
            c.uber = p;
            return c;
        }
    而深拷贝是浅拷贝的递归调用:



    function deepCopy(p, c){
            var c = c || {};
            for(var i in p){
                if(typeof p[i] === 'object'){
                    c[i] = (p[i].constructor === Array) ? [] : {};
                    deepCopy(p[i], c[i]);
                }else{
                    c[i] = p[i];
                }
            }
            return c;
        }


    本文整理自:http://www.ruanyifeng.com/blog/(阮一峰的网络日志)

    本文为风林火山博客原创,转载请注明出处:www.flcoder.com