概念
柯里化(Currying)又称部分求值。一个Currying的函数首先会接受一些参数,接受了这些参数之后,该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包中被保存起来。待到函数被真正需要求值的时候,之前传入的所有参数都会被一次性用于求值。
Example
// 普通写法
function cal(x,y){
return x * y;
}
// 柯里化
function curryingCal(x){
return function(y){
return x * y;
}
}
cal(1,2);
curryingCal(1)(2);
应用场景
函数参数复用
需求:有一个字符串,验证其没有含有特殊字符且含有数字。
function check(reg,str){
console.log(reg.test(str));
return reg.test(str);
}
let str = '@112'