浅拷贝
只拷贝第一层,更深层次的数据对象只拷贝引用地址 如果改变了拷贝后的数据,原数据也会修改
- Object.assign(newObj, oldObj);
深拷贝
// 封装函数
function deepClone(newObj, oldObj) {
for(let k in oldObj) {
const item = oldObj[k];
if (item instanceof Array) {
newObj[k] = [];
deepClone(newObj[k], item);
} else if (item instanceof Object) {
newObj[k] = {};
deepClone(newObj[k], item);
} else {
newObj[k] = item;
}
}
}