JS深拷贝和浅拷贝

深拷贝是指复制的引用类型不跟着原数据改变而改变。

浅拷贝是指复制的引用类型随原数据改变而改变。

引用类型拷贝的时候,拷贝的是引用地址,而非堆里面的值,要想深度拷贝引用类型,需要在堆内存中也开辟一个新的内存专门为新对象存放值。

有三种方法深拷贝引用类型:

1、递归方法

     原理:递归去复制所有层级属性

2、使用json的对象的parse和stringify

     JSON.parse()【从一个字符串中解析出json对象】

     JSON.stringify()【从一个对象中解析出字符串】

3、jquery的extend方法

    $.extend( [deep ], target, object1 [, objectN ] )

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、JS的基本数据类型 基本数据类型:String,Boolean,Number,Undefined,Null; ...
    puxiaotaoc阅读 34,002评论 9 95
  • 在讲深拷贝和浅拷贝的时候先说一下js的数据类型,因为在我理解而言只有引用类型才有深浅拷贝的概念 基本数据类型 首先...
    神话降临阅读 1,839评论 0 1
  • 这就是深拷贝,意思是拷贝之后,改变其中一个值的同时并不改变另一个值。 除了object以外的数据类型,赋值都是深拷...
    彭奕泽阅读 1,306评论 0 1
  • 一.如何区分深拷贝和浅拷贝如果A复制了B,对B改变看看A是不是会改变,如果A也跟着改变就是浅复制,如果A不跟着改变...
    野蛮生长_ed2e阅读 1,735评论 0 0
  • js中有一些基本数据类型,而对象就是像这样的{ name: 'Larry', skill: 'Node.js' }...
    铁木真丫丫丫阅读 1,501评论 0 0