什么是柯理化 :
- 当一个函数有多个参数的时候,可以先传递一部分参数调用它(这部分参数以后永远不变);
- 然后返回一个新的函数接受剩余的参数,返回结果。
// 硬编码const checkAge = age =>{const limit = 18;return age >= limit}// 取消硬编码,并且是纯函数const checkAgePure = (limit , age)=> age >= limit;console.log(checkAgePure(18,22));console.log(checkAgePure(18,10));console.log(checkAgePure(22, 12));// 18 可能会使用多次,再次优化 => 函数的柯理化// const checkAgeFn = (limit) =>{// return (age)=>{// return age >= limit// }// }// 使用 es6 实现const checkAge = limit => (age => age >= limit)const checkAge18 = checkAgeFn(18)console.log(checkAge18(22))console.log(checkAge18(12))console.log(checkAge18(17));const checkAge22 = checkAgeFn(22)console.log(checkAge22(22));
