首先我们来理解理解深拷贝和浅拷贝,看看他们的区别
**深拷贝:**另外创建一个一模一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对象。
**浅拷贝:**会对对象逐个成员依次拷贝,只复制了内存地址,并没有复制对象本身,新旧对象还是共享一个内存地址。
不知道上面这个解释大家是否能听看懂吗?没看懂没关系,我们在看看下面的示例。
【深拷贝】
//深拷贝-方法1
var a1=[1,2,3,4];
var a2=a1.concat();
a2[1]=100;
console.log(a1); //[1,2,3,4]
//深拷贝-方法2
var a1=[1,2,3,4];
var a2=a1.slice();
a2[1]=100;
console.log(a1); //[1,2,3,4]
//深拷贝-方法3(es6)
var a1=[1,2,3,4];
var a2=[...a1];
a2[1]=100;
console.log(a1); //[1,2,3,4]
【浅拷贝】
//浅拷贝
var a1=[1,2,3,4];
var a2=a1;
a2[1]=100;
console.log(a1); //[1,100,3,4]
上面示例如果还看不懂的话,没关系没关系,转行就行了…