超简单的深度拷贝

61 阅读1分钟

前言

深度拷贝是面试经常遇见的代码题,日常开发中都使用JSON.parse(JSON.stringify()),今天抽空写了个方法,供大家参考。

先上代码,拿去直接用

function deepCopy(obj) {
    let result = {}
    if(typeof obj !== 'object') {
        return obj
    }
    Object.keys(obj).forEach(key => {
        result[key] = deepCopy(obj[key])
    })
    return result
}

测试一下:

let obj = {
  a: {
    b: 2,
  },
};

let copyObj = deepCopy(obj)

console.log(copyObj) // { a: { b: 2 } }
copyObj.a.b = 3
console.log(obj) // { a: { b: 2 } }
console.log(copyObj) // { a: { b: 3 } }