zoukankan      html  css  js  c++  java
  • 深层拷贝与浅层拷贝

    1.区别:

       值类型:布尔类型,字符串,整型。
       引用类型: 数组,集合,对象。
       值类型保存在栈中,而引用类型需要在栈中通过引用地址在堆中找到值。

    2.浅层拷贝

       例如:
          var a ={{m:1}, {n:2},3}
          var b=a.slice();
          console.log(a===b); //false
          a[0].m = 4;
          console.log(b[0].m)//4,说明拷贝的是元素的引用
          a[2] = 5;
          console.log(b[2])//3,说明拷贝的实例,(拷贝的a上面的3)


    3.深层拷贝

       1.seven2 = JSON.parse(JSON.stringify(seven1));
        2.$.extend( [deep ], target, source)
           例如:
               var a = [{m:1}, {n:2},3];
               var b =[];
               $.extend(true,b,a);  //true 表示深层copy,false 指的浅层
               console.log(a === b);// false
               a[0].m = 4;
               console.log(b[0].m)//1
               a[2] = 5;
               console.log(b[2])//3
         3.Object.assigbn(target,source)   把source深层copy给target
           例如:
             var a = [{m:1}, {n:2},3];
             var b =[];
             var c=[];
            //jquery.extend(true,b,a);
             Object.assign(b,a) //深层copy对象
             console.log(a === b);// false
             c=a;   //复制引用地址
             console.log(c==a);  //true

  • 相关阅读:
    Zoj 3511 线段树
    HDU 3340 Rain in ACStar 线段树+简单几何?
    BZOJ 2282 & 树的直径
    BZOJ 1121 & science
    BZOJ 1067 & Interval_Tree
    BZOJ 1001 & SPFA
    UVa 11181 条件概率
    并查集——启发式合并,路径压缩
    GSS系列(1)——GSS1&&GSS3
    评测脚本
  • 原文地址:https://www.cnblogs.com/911sky/p/14188141.html
Copyright © 2011-2022 走看看