javaScript-函数柯里化
2021-11-20·2min
type
Post
summary
status
Published
category
tags
slug
date
Nov 20, 2021
password
icon
函数柯里化就是将一个接受多个参数的函数,改造成一系列接受一个或多个参数的函数。
例如下面这个函数原先是这样调用的:
改造成柯里化函数后是这么调用的:
可以看到被柯里化后的curryAdd函数可以分批接受参数。
柯里化函数的实现
那么思考一下,上面的假定的curry函数有什么功能?如何实现这个curry函数?
功能:
- 返回一个被柯里化的函数,这个函数接受单个或多个参数。
- 如果参数个数满足原函数所需的个数,则立马执行原函数并返回结果。
- 如果参数个数少于原函数所需的个数,则返回该柯里化函数并等待接收剩余的参数。 参数:需要被柯里化的函数 返回值:柯里化后的函数
下面来实现一下这个curry函数:
简单总结:柯里化后的函数会收集参数,直到满足原函数所需才开始执行并返回结果。
柯里化函数的使用案例
- 最大化重用重复参数
例如我们需要封装一个ajax请求的函数:
可以看到虽然这个ajax封装了基本的请求逻辑,但是在所需的参数相同时,代码还是显得很冗余。
这时候就可以将这个ajax函数柯里化,最大化重用重复参数。
如上所示,当参数相同时,只需传递不同的参数就可以达到相同的效果。