柯里化的实现原理:
接下来我们就自己手动实现柯里化。
1.目标:编写一个myCurring的函数,参数接收一个函数,调用自动实现柯里化。
2.思路步骤:
- 创建一个名字为
myCurring的函数,接受的参数为 那个需要变为柯里化的函数,这里用fn表示 - 函数内部返回一个名字为
curried的函数,接收参数的个数为fn中参数的个数,这里使用剩余参数...args接收 curried函数内部 需要去判断当前已经接收的参数的个数,是否与参数本身需要接受的参数的个数一致了。- 如果当前传入的参数 大于等于 需要接受的参数的个数时,执行函数,返回
fn.apply(this, args) - 如果不满足上述条件 ,也就是传入的参数没有达到要求的个数时,需要返回一个新函数 这里用
curried2表示,接收的参数为第一次接收的参数后剩下的参数,这里使用...arg2表示。 - 接收到参数后
curried2函数执行,递归调用curried 函数,继续判断传入的参数的个数是否一致,一致则执行3.1的步骤,反之则继续递归调用curried函数检查参数的一致性。
- 如果当前传入的参数 大于等于 需要接受的参数的个数时,执行函数,返回
- 调用
myCurring函数,传入我们需要 柯里化的函数作为参数。
3.完整代码示例:
// 柯里化函数的实现 将
手动实现JavaScript柯里化

本文介绍了柯里化的概念,并通过一个详细的步骤解析了如何手动实现JavaScript中的柯里化函数。利用myCurrying函数,我们可以将任意函数转换为柯里化形式。在代码示例中,展示了如何对sum函数进行柯里化,最终检验了柯里化后的函数能够得到与原函数相同的结果。
最低0.47元/天 解锁文章
694





