深拷贝VS浅拷贝一

原创
2020/04/22 10:08
阅读数 363

今天来学习一下JS中的深拷贝与浅拷贝。

首先,我们得知道,什么是深拷贝,什么是浅拷贝?

JS的变量其实是有两个类型。1、基本型  2、引用类型 

基本类型中,比如var str="app“;  var num=1;

引用类型:var obj={type:1}; var arr=[1,2,3];

可以看出,基本型就是值类型,而引用类型就是常规的对象和数组。

1、基本类型

var str="string";
var num=str;
var str=666;
console.log(str,num)//666 "string"

这里可以看出,str再重新赋值以后,num并没有被赋值成666,说明str和num的引用指向的是不同的数据。

2、引用类型

var obj={type:1};
var arr=obj;
obj.type=666;
console.log(obj,arr) // type:666   type:666

这里可以看出,我们obj.type重新赋值了以后,arr的数据也发生了变化,说明它们引用的是相同的数据源。

对于引用类型的数据,我们平时工作中可能对数据的修改,会造成其他的引用值也改变了,这当然不是我们想要的结果,容易出现bug,我们需要把源数据拷贝一份出来进行赋值修改,所以这就引出了我们的深拷贝,浅拷贝。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部