js实现浅拷贝和深拷贝

时间:2019-10-15
本文章向大家介绍js实现浅拷贝和深拷贝,主要包括js实现浅拷贝和深拷贝使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

实现浅拷贝和深拷贝

1. 浅拷贝和深拷贝的区别

      简单点说,浅拷贝拷贝完后,修改拷贝的内容可能会对源内容产生影响。而深拷贝就是拷贝前后的内容相互不影响。

那为什么拷贝前后的内容会相互影响呢?

那就得知道基本类型和引用类型的区别了。

  • 基本类型:自然不用说了,它的值就是一个数字,一个字符或一个布尔值。
  • 引用类型:是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。

而在js中,有三大引用类型即Object、Array、Function。

因此在拷贝他们的时候,应该使用深拷贝来避免于源内容产生影响。

2.实现浅拷贝

3.实现深拷贝

3.1使用JSON

var arr = [1, [7, [9]], {a:'1'} , function(){}, null, undefined, NaN];
var result = JSON.parse(JSON.stringify(arr));

 拷贝结果

[1, [7,[9]], {a:'1'}, null, null, null, null]

所以可以看出,使用JSON不能实现对function、undefined、NaN的拷贝。

原文地址:https://www.cnblogs.com/xuxuya/p/11677533.html