实现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);