老师,deepMerge 若两个对象有同一个属性的话

来源:9-3 合并配置的设计与实现 - 配置合并策略(下)

渴望做梦

2019-06-30

图片描述
如果传递的两个对象,甚至多个对象,有相同的属性的话,根据这个方法的逻辑来看后来的属性会覆盖前面的属性值,是这样吧?

写回答

1回答

ustbhuangyi

2019-06-30

如果是普通值,则直接赋值,如果是对象,则递归执行 deepMerge,可以通过一个测试用例看。
test('should deepMerge recursively', function() {
 const a = { foo: { bar: 123 } }
 const b = { foo: { baz: 456 }, bar: { qux: 789 } }
 const c = deepMerge(a, b)

 expect(c).toEqual({
   foo: {
     bar: 123,
     baz: 456
   },
   bar: {
     qux: 789
   }
 })
})

1
1
渴望做梦
非常感谢!
2019-07-06
共1条回复

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

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

2631 学习 · 877 问题

查看课程