函数柯里化和构造器模式

中午看 lodash 文档时发现,lodash 除了内部方法,另有一个 fp 包。fp 包是 functional programming 缩写,也就是说 lodash 做了函数式编程的实现。想到这里看了下函数柯里化,然后想到了构造器模式,因为这两者实在是太像了。所以就想到了这个问题:

既然实现上可以互相代替,那么函数柯里化和构造器模式区别在哪里?有没有不能相互替代的场景?

答案是有的,和大佬交流后总结下能想到两个方面:

  1. 作为函数式编程的参数,柯里化可以,builder 不可以
  2. 作为高并发状态下的方法,柯里化是原子操作,不会有并发问题;而 builder 链式操作,可能会产生并发和冲突。

参考资料

😏 使用 lodash/fp

JavaScript 函数柯里化 - 知乎

分析和总结下 Builder 模式 - 知乎