S001-实现浅拷贝★
01.实现浅拷贝
如果一个变量复制一个对象,那么两者的值会是同一个引用,其中一个改变,另一方也会相应改变。针对引用类型我们需要实现数据的拷贝。
1.用...实现
const copy = {...{x:1}}
2.用Oject.assign 实现
const copy = Object.assign({},{x:1})
扩展运算符跟Object.assign({},obj)是一样的,对于对象中的值修改,是深拷贝,而里面的对象则是浅拷贝
但是呢
Object.assign(obj) 这么写就是单纯的引用了,无论里面是值还是对象
3.用slice(或concat([]))实现
```
let arr = [1,3,{
x:1
}]
let copy = arr.slice();
```
数组中的值的变化是,深拷贝,对象变化就是浅拷贝同1,2
4.新建对象,循环添加
let obj2 = {}
for(let key in obj){
obj2[key] = obj[key]
}
obj2.name = 'CCC'
```