浅拷贝
浅拷贝简单来说就是两者是指向一个对象
数组的浅拷贝
array.concat()
array.slice(0)
两者都只能拷贝一层。所以如果数组中含有对象,一个数组中的对象发生变化,另一个数组中的对象也会发生变化。
如果数组中都是Number,Boolean,String等基本类型,这两种方式可以理解成深拷贝。
对象的浅拷贝
直接遍历赋值
ES6:var copyObj = Object.assign({}, obj)
ES7:var copyObj = { ...obj }
深拷贝
数组的深拷贝
遍历拷贝
对象的深拷贝
JSON.parse(JSON.stringify(Obj))【满足一般场景下的深拷贝】