码迷,mamicode.com
首页 > Web开发 > 详细

js的深复制与浅复制

时间:2018-02-06 20:37:35      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:body   wan   post   浅复制   对象   blog   gpo   复制   javascrip   

什么是深复制和浅复制?

  深复制和浅复制的概念存在于对象array数组obj上。

  浅复制是:模糊复制,就是不管对方是字符串类型还是引用类型都通通复制过来。结果两个变量的内容会同时变化。

  深复制是:有目的的复制,就是只希望复制变量存储的内容。

  深复制方法:let b = JSON.parse(JSON.strigify( a ));

  javascript的类型有两种:字符串类型引用类型

  字符串类型的复制,值改变时不会影响到另一个变量,如:

    let a=7;  let b=a;  a=6; 

    console.log(a)   // a=6

    console.log(b)   //b=7 

  引用类型的复制,值改变时会影响到另一个变量。如:

    let a={ name: ‘xiaohong‘ };  let b=a;  a.name=‘xiaowang; 

 

    console.log(a.name)   // a=‘xiaowang‘

 

    console.log(b.name)   //b=‘xiaowang‘

  因为数组和对象中存储的不是内容本身,而是存放内容的地址,所以数组和对象被复制给另一个变量时,该变量也指向了该地址。

  当a.name变化时只是内容发生更改,地址并没有改变,所以指向同一地址的a。a.name和b.name都改变了。

 

    

js的深复制与浅复制

标签:body   wan   post   浅复制   对象   blog   gpo   复制   javascrip   

原文地址:https://www.cnblogs.com/surui/p/8423201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!