柯里化,是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
例如:
// 普通函数
function sum(x, y) {
return x + y
}
console.log(add(3, 4)) // 7
// 函数柯里化
function checkAge (age){
return function(min){
return age > min
}
}
console.log(checkAge(20)(18)) // true
如果提供了函数需要的所有参数,如示例中的age和min,则执行函数并返回执行结果。否则,继续返回该函数并等待剩余参数。
例如:
console.log(checkAge(20)(18)) // true
console.log(checkAge(20)) // ƒ (min){return age > min}
在柯里化函数内部就是使用闭包,对函数的参数进行缓存。柯里化就是通过一个函数生成一些细粒度更小的函数,从而让函数变得更灵活。目的是为了把多元函数转换成一元函数,在后续使用时组合多个函数并产生强大的功能。