javascript中的浅复制和深复制

  • 浅复制:就是把数据的地址赋值给对应变量,而没有把具体的数据复制给变量,变量会随数据值的变化而变化。
  • 深复制:就是把数据赋值给对应的变量,从而产生一个与源数据不相干的新数据(数据地址已变化)。
  • 浅复制不会随着存储数据地址的变化而变化,只会随着数据值的变化而变化。
  • 实现引用类型的深度复制
    function clone(obj){
        var o=[];
        if(obj.constructor== Array) {
            o=obj.slice(0);
           }else{
               o={};
               for(var i in obj){
                    o[i] = typeof obj[i] === "object" ? obj[i].clone() : obj[i];}
           }
           return o;

    }

    摘录于:http://www.cnblogs.com/mingwaer/p/3739650.html

原文地址:https://www.cnblogs.com/mk9007/p/3741083.html