实现JS深克隆的几种方式
一、递归
function deepClone(obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
let clone = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
clone[key] = deepClone(obj[key]);
}
}
return clone;
}
二、JSON正反序列化
function deepClone(obj) {
return JSON.parse(JSON.stringify(obj));
}
三、第三方函数库Lodash
const _ = require('lodash');
const obj = {
a: 1,
b: {
c: 2,
d: [3, 4, 5]
}
};
const clonedObj = _.cloneDeep(obj);
console.log(clonedObj);

浙公网安备 33010602011771号