js函数柯里化详解

x33g5p2x  于2022-02-28 转载在 其他  
字(0.5k)|赞(0)|评价(0)|浏览(554)

一、什么是函数柯里化
函数柯里化就是我们给一个函数传入一部分参数,此时就会返回一个函数来接收剩余的参数。
二、简单的柯里化的实现
没有柯里化实现的案例

将其转化为柯里化的案例

上述代码可简写为

三、函数柯里化的好处
我们希望处理函数时,希望函数功能尽可能单一。如下面代码所示,我们希望第一个参数+2,第二个参数*2,第三个参数** 2,最后再相加,此时我们可以使用函数的柯里化。

四、自动柯里化

  1. function myCurried(fn) {
  2. return function curry(...args1) {
  3. if (args1.length >= fn.length) {
  4. return fn.call(null, ...args1)
  5. } else {
  6. return function (...args2) {
  7. return curry.apply(null, [...args1, ...args2])
  8. }
  9. }
  10. }
  11. }
  12. function sum(a, b, c, d, e) {
  13. return a + b + c + d + e
  14. }
  15. let resFunc = myCurried(sum)
  16. console.log(resFunc(1,3,4)(1)(23))
  17. //解析:
  18. //1、这里的fn.length获取的是函数传入参数的长度
  19. //2、这里使用递归的思想

相关文章