一、浅拷贝与深拷贝的区别
浅拷贝是传址操作,传递的地址不会改变。
深拷贝是传值操作
二、深拷贝的方式
1.json 暴力转换
1 var obj1 = { 2 age:18, 3 } 4 var obj2 = JSON.parse(JSON.stringify(obj1)); 5 console.log(obj2)
缺点:
(1)如果对象里有函数,函数无法被拷贝下来
(2)无法拷贝copyObj对象原型链上的属性和方法
2.解构赋值拷贝
1 var obj3 = { 2 age: 18, 3 } 4 var obj4 = { ...obj3 } 5 // obj4.age = 20 6 console.log(obj4.age); // 20
3.利用对象的合并
1 var obj5 = { 2 age: 18, 3 } 4 var obj6 = Object.assign({}, obj5); 5 console.log(obj6);
4.