js中的深拷贝与浅拷贝

Posted 一念430

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中的深拷贝与浅拷贝相关的知识,希望对你有一定的参考价值。

对于字符串类型,浅拷贝是对值的拷贝,对于对象来说,浅拷贝是对对象地址的拷贝,并没有开辟新的栈,也就是拷贝的结果是两个对象指向同一个地址,修改其中一个对象的属性,则另一个对象的属性也会改变,而深拷贝则是开辟新的栈,两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性。
 
深拷贝的实现方法:
b = JSON.parse( JSON.stringify(a) )

这样做的局限性:

  • 无法复制函数
  • 原型链没了,对象就是object,所属的类没了。

另:

jquery.extend()也可以实现深拷贝。

以上是关于js中的深拷贝与浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

js中的深拷贝与浅拷贝

从JS的深拷贝与浅拷贝到jq的$.extend()方法

小记js的深拷贝与浅拷贝

小记js的深拷贝与浅拷贝

小记js的深拷贝与浅拷贝

小记js的深拷贝与浅拷贝