js 的Object.assign 可以拷贝一个对象,但是更深层次的对象无法进行拷贝。
所以还是必须自己实现一个递归来实现深拷贝

// 深度拷贝
    function extend(obj, obj2) {
        // 拷贝对象,防止修改了原始obj
        var newObj = Object.assign({}, obj);
        for (var key in obj2) {
            if ("object" != typeof obj[key] || null === obj[key] || Array.isArray(obj[key])) {
                if (void 0 !== obj2[key]) {
                    newObj[key] = obj2[key];
                }
            }else{
                    newObj[key] = extend(obj[key], obj2[key]);
                }
        }
        return newObj
    }

这样一来,就不用担心嵌套对象的拷贝了

相关文章:

  • 2021-07-14
  • 2021-09-27
  • 2021-12-07
  • 2021-11-25
  • 2019-12-28
  • 2021-12-19
  • 2021-12-26
  • 2022-12-23
猜你喜欢
  • 2022-02-02
  • 2022-01-01
  • 2021-12-02
  • 2021-10-26
  • 2022-12-23
相关资源
相似解决方案