函数柯里化
柯里化(Currying): 把接受多个参数的函数变换成接受一个单一参数(或部分)的函数,并且返回接受余下的参数而且返回结果的新函数的技术
- 1、通过闭包将参数集中起来计算,最后再把需要处理的参数传进去
- 2、实现原理就是用闭包把传入参数保存起来
function curry(fn) {
const judge = (...args) => {
if (args.length == fn.length) return fn(...args)
return (...arg) => judge(...args, ...arg)
}
return judge
}
柯里化场景
1、参数复用 - 对部分参数的复用,无需重复添加
2、提前返回 - 提前可以返回存在返回值并且可以继续接收参数的函数
3、延迟计算/运行 -不断的柯里化,累积传入的参数,最后执行