deepMerge的小疑惑

来源:9-4 合并配置的设计与实现 - flatten headers + demo 编写

Dolly_Zhang

2020-06-17

黄老师端午节快乐。最近看到合并配置章节产生了小疑惑:
deepMerge这个函数之所以能实现深拷贝,是因为遇到Object就循环调用deepMerge,直到遇到string再赋值,从而实现每个字段都是传值赋值,是吗?
那config.data这个对象在合并的时候是不是也应该调用deepMerge?直接用config.data = config2.data是不是一次浅拷贝?容易出现黄老师所说的“对引用修改容易有问题”?

谢谢。

写回答

1回答

ustbhuangyi

2020-06-17

deepMerge 实现深拷贝是因为内部通过 const result = Object.create(null) 创建了一个新的对象,然后遍历原对象都是往新对象上赋值。 而 config.data = config2.data 根本算不上拷贝,就是一个引用而已,指向的都是同一个对象。

0
1
Dolly_Zhang
谢谢老师
2020-06-17
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程