deepMerge逻辑问题

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

wangao4321

2019-05-27

现在的逻辑是
headers = deepMerge(headers.common || {}, headers[method] || {}, headers);

这里用深copy遍历的方式感觉非常不友好,特别是前两个参数其实已经拿到了我们要的数据结构的一部分,common中的一些配置,如accept, 和Mehods: [put ,post ,balaba…],
那么传入参数的时候其实已经可以删除掉headers中前两次遍历合并中已有的参数了,比如common,然后再将headers传入。
也许原因是:我这里对headers的全部参数不够了解,希望老师解答我的疑惑,谢谢。
或者老师有没有更好的优化,这里的深copy我觉得还能在优化下。

写回答

1回答

ustbhuangyi

2019-05-27

我没太懂你的问题,这么做的目的是为了把 headers.common 和  headers[method]  中配置的对象都提到外层 headers 这层,使用 deepMerge 的目的也就是要拷贝对象的副本而不是对象本身。
如果不这么做,你是否能按你的思路写一段你认为比较好的代码来实现同样的功能呢,我们可以做一下对比。

0
4
ustbhuangyi
回复
wangao4321
贴一下代码吧
2019-05-28
共4条回复

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

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

2629 学习 · 877 问题

查看课程