目录
一、利用for(..in)
缺点:复杂
优点:能实现多层的深拷贝
二、利用Object.assign
缺点:只能深拷贝对象的第一层,如果对象中的属性也是对象的话,没有办法拷贝的。
三、利用解构赋值
let obj = { name: "laogao", age: 20 };
obj1 = { ...obj };
// 验证拷贝是否成功
console.log(obj1);
// 验证深拷贝
obj1.height = 180;
console.log(obj1);
console.log(obj);
打印结果:
...这三个点会把后面对象或数组中的属性或数值取出组成一个序列,相当于把obj中的属性(带有属性值)取出组成个序列,又被放在obj1中了。
缺点:只能深拷贝对象的第一层,如果对象中的属性也是对象的话,没有办法拷贝的。