概念
- 当一个函数有多个参数的时候传递一部分参数调用它(这部分参数永远不会变)
- 然后返回一个新的函数
接收剩余的参数
,返回结果。 - 个人理解:科里化类似拆解操作,将多参函数拆解成少参函数(科里化谐音“颗粒化”哈哈)
示例:使用柯里化解决纯函数案例中硬编码的问题
// 带有硬编码的函数
function checkAge(age) {
let min = 18
return age >= min
}
// 普通纯函数
function checkAge(min, age) {
return age >= min
}
checkAge(18, 24)
checkAge(18, 20)
checkAge(20, 30)
// 柯里化 参数分两次传入
function checkAge(min) {
return function (age) {
return age >= min
}
}
// ES6 写法
let checkAge = min => (age => age