函数柯里化
- 概念:将接收多个参数的函数,拆分成接收单一参数并将余下参数作为内部返回值函数中处理,该形式则称为函数柯里化
// 计算所有传入参数的和
//1.未进行柯里化之前
function getSum(num1, num2) {
return num1 + num2
}
let res = getSum(2, 3);//5
getSum(res,6);
//2.函数柯里化
function outer(num1) {
let all = num1;
function inner(num2) {
all += num2
console.log(all);
}
return inner
}
let getRes = outer(2)
getRes(3)
getRes(6)
-
应用场景:正则格式验证
//1.未柯里化之前 function regStr(reg,str) { return reg.test(str) } //检测手机号格式 console.log(regStr(/^1[3-9]\d{9}$/,"13222222222")); console.log(regStr(/^1[3-9]\d{9}$/,"12222222222")); //2.进行函数柯里化 function outer(reg){ let reg1 = reg function inner(str){ return reg1.test(str) } return inner } let res = outer(/^1[3-9]\d{9}$/); console.log(res("13222222222")); console.log(res("12222222222")); -
作用:消除参数的重复性,简化代码