柯里化#
柯里化是一种函数的转换,它是指将一个函数从可调用的 f(a, b, c) 转换为可调用的 f(a)(b)(c)。柯里化不会调用函数。它只是对函数进行转换。
柯里化的作用是函数执行产生一个闭包,把一些信息预先存储起来供下级上下文使用。柯里化就是闭包一个很典型的应用。
代码实现箭头函数确实简洁但是可读性也确实会低一点,建议适当的使用!
换个写法curriedSum是函数 curry 返回一个函数,形参为 a,此时curriedSum(1)返回的是另一个函数,形参为 b,curriedSum(1)(2)返回的是sum(1,2)执行的结果,这样就实现了柯里化之后的函数从 sum(a,b)想 curriedSum(a)(b)的转化。在这个过程中,return 的函数形成了闭包,将参数存储起来了。组合函数#
上面是把 c(2)的结果作为参数传给 b 再将 b(c(2))的结果作为参数传给 c,但是这样写多少有点不够优雅以上这个实现参考的是 redux 中 compose 的实现
{% gallery %}
{% endgallery %}柯里化思想,利用闭包,把一些信息预先存储起来,目的是供下级上下文使用。
组合函数,把处理的函数数据像管道一样连接起来,然后让数据穿过管道连接起来,得到最终的结果。
修改于 2025-05-17 06:29:28