场景:收银系统,把相同商品加入购物车,调整一项的数量,会干扰其他项的数据;
原因:js直接赋值属于浅拷贝,只能拷贝对象的内存地址(导致修改任一项的数据会同步改变其他项)。
实现深拷贝的方法:
1、ES6
let goods = {...}
let curGoods = Object.assign({},goods);
2、JSON转换
let goods = {...}
let curGoods = JSON.parse(JSON.stringify(goods));
let goods = {...}
let curGoods = Object.assign({},goods);
let goods = {...}
let curGoods = JSON.parse(JSON.stringify(goods));