深浅拷贝(初理解)

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

比如,对象的赋值:

例如: 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是同时拥有不同的两个内存地址。这样可称为深拷贝。

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

 

posted @ 2018-08-26 13:40  leehf  阅读(162)  评论(0编辑  收藏  举报