1.JavaScript方法:
这个方法不能处理循环引用的对象、函数、undefined值。
let obj = JSON.parse(JSON.stringify(object))
2.使用lodash库:
安装lodash
npm i --save lodash //全局安装
深拷贝
let obj = _.cloneDeep(object);
3.递归拷贝:
递归函数来遍历对象的所有属性,并对每个属性进行拷贝。如果属性值也是对象或数组,则递归调用这个函数。
function deepCopy(obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
let copy = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
copy[key] = deepCopy(obj[key]);
}
}
return copy;
}
let obj = deepCopy(object)