对象与数组的深拷贝

  • Post author:
  • Post category:其他


什么是深拷贝和浅拷贝

1)深拷贝在计算机中开辟了一块内存地址用于存放拷贝的对象,

2)而浅拷贝仅仅是指向被拷贝的内存地址,如果原地址中对象被改变了,那么浅拷贝出来的对象也会相应改变。

深拷贝和浅拷贝最根本的区别在于是否是真正获取了一个对象的拷贝实体,而不是引用。

对象和数组占用内存较大,直接复制会发生引用。这个时候就需要深拷贝,来实现拷贝。防止发生引用

数组

对于ES6 数组有两种新的拷贝方法  防止发生引用

1. Array.from();

var arr1=[1,2,3];
var arr2=Array.from(arr1);

2.

var arr1=[1,2,3];
var arr2=[...arr1];

对象

此处只记录一种最简单的深拷贝方法。

var obj = { name:"John", sex:"male" };  //需要深拷贝的对象。

var str = JSON.stringify(obj) ;//把此对象转化为字符串。

var newObj = JSON.parse(str);//再把字符串形式的对象转回对象得到的新对象即可满足深拷贝;不会产生引用。



版权声明:本文为weixin_39495924原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。