JavaScript--引用数据类型的深浅拷贝

深浅拷贝为引用数据类型(复杂数据类型)的赋值操作!

浅拷贝:将一个引用数据类型的地址,赋值给另一个变量存储,没有进行任何处理称为浅拷贝。

int1 变量中存储的是数组的 内存地址;
 
将 int1 存储的内存地址,赋值给 int2,两个变量存储的是相同的内存地址;
因为int1和int2,同时存储的是相同的数据与内存地址,操作的也是同一个数组,
所以,int1,操作数组改变,int2也会改变;
 
 
浅拷贝:直接赋值的是内存地址,赋值之后,两个变量使用相同内容,一个操作,另一个也会改变。
 
深拷贝:只赋值 引用数据类型中的 数值 而不是 复制地址,内存地址不相同成为深拷贝。
 
只复制int1中的数据;
 
循环遍历,获取int1中的所有数据数值,赋值到新的数组中;
 
通过循环,生成int1的所有索引下标;
 
int1[i] 就是获取 int1中的 存储的 数据信息,
int2.push() 将int1中的数据 int1[i] , 写入到 int2中;
 
 
深拷贝:循环遍历,获取引用数据类型中,存储的每一个数据信息赋值到新的变量中,赋值之后 
两个变量产生不同的内存地址,没有任何关系。
 
 

猜你喜欢

转载自www.cnblogs.com/zhanglei154636/p/12546533.html