zoukankan      html  css  js  c++  java
  • 深浅拷贝(初理解)

    浅拷贝:就是赋值语句的使用,

    比如,对象的赋值:

    例如: var obj1={a:1,b:2};

       var obj2=obj1;

       obj2.a=3;

       console.log(obj1)

       //{a:3,b:2}修改obj2.a的同时修改obj1中a的值

          console.log(obj2)

       //{a:3,b:2}

    这样 在修改obj2.a的时候同时修改 obj1对象中a的值。 因为是obj1在赋值给obj2的时候,两个对象共用一个内存地址。这样可称为浅拷贝。

    深拷贝:

       var obj3={c:1,d:6};

       var obj4={c:obj3.c,d:obj3.d};

       obj4.c=200;

       console.log(obj3)

       //{c:1,d:6}修改obj4.c时并没有修改obj3中c的值

          console.log(obj4)

       //{c:200,d:6}

        这样 在修改obj4.C的时候并没有修改 obj3对象中c的值。 因为obj3和obj4是同时拥有不同的两个内存地址。这样可称为深拷贝。

    以上只是最简单的区别,让能够简单的认识些,其实在开发过程中经常用到,只是有时会遗忘这所谓定义。

  • 相关阅读:
    Word Break
    Binary Tree Right Side View
    41. First Missing Positive
    2 Sum ,3 Sum, 3 Sum close
    216. Combination Sum III
    190. Reverse Bits
    143. Reorder List
    142. Linked List Cycle II
    Single Number i,ii,iii
    62. Unique Paths i & ii
  • 原文地址:https://www.cnblogs.com/leehf/p/9537180.html
Copyright © 2011-2022 走看看