实现深拷贝的两种方法:1 迭代递归 2 序列化反序列化
// 迭代递归法:深拷贝对象与数组 function deepClone(obj) { if (!isObject(obj)) { throw new Error('not object!') } let isArray = Array.isArray(obj) let cloneObj = isArray ? [] : {} for (let key in obj) { cloneObj[key] = isObject(obj[key]) ? deepClone(obj[key]) : obj[key] } return cloneObj }
2 序列化反序列化
// 序列化反序列化法 function deepClone(obj) { return JSON.parse(JSON.stringify(obj)) }