1.浅拷贝和深拷贝的区别
浅拷贝,将a直接赋值给b,修改b,a也会一起变化
例:
2.深拷贝:a赋值给b,修改b之后,a不会发生变化
深拷贝的方法(1):Object.assign()
var admin = {
role:'admin',
age:28,
work:'marketing',
daliy:{
record:'9',
noon:'12',
eve:'18'
},
content:function(){
console.log(this.role);
}
};
var deepSale = Object.assign({},admin);
deepSale.role = 'sales';
console.log(admin.role)//‘admin''
通过Object.assign()给变量赋值,再修改,不会影响到之前的变量值;但是这个方法,只实现了一层属性的深拷贝,当属性值是对象的时候,这个方法不能实现嵌套属性的深拷贝。
(2)通过JSON.stringify()和JSON.parse()
先将对象转换成字符串,再将字符串转换成对象
但是这种方法,会丢失掉原对象中的方法。