1、利用json两次转换
推荐——操作新颖,逆向思维
(①转成json字符串;②在将字符串转为对象)
obj1 = { a: 0 , b: { c: 0}}; let obj3 = JSON.parse(JSON.stringify(obj1)); obj1.a = 4; obj1.b.c = 4; log(JSON.stringify(obj3));// { a: 0, b: { c: 0}}
2、利用vue的lodash
慎用lodash的cloneDeep函数(文中还是推荐方法一)
import { cloneDeep } from 'lodash';
//拷贝对象,防止引用
this.allocateInfo = cloneDeep(allocate);
3、传统笨拙方法:循环对象,对每个属性拷贝
(漏洞:对象嵌对象,可能还是存在引用);
引申:Object.assign()