函数柯里化:
因为有多个形参的函数在调用时
实参的个数必须满足对应的形参个数 函数才能正常执行
多次调用同一个函数 均要做到对应实参的传入
当有相同的实参 多次调用都需要重复的传参就会让调用函数变得繁琐
好的 现来我们来解释下面简单的举例来介绍 什么叫做函数柯里化
<script>
// 定义函数 curry 形参为 正则表达式reg
function curry(reg){
// 闭包的方式 保留第一个参数 reg return 函数体继续往下执行
return function(str){
//
return reg.test(str)
}
}
// 调用curry() 实参为: /^\d{4,6}$/
// boo1 变量 存储 外层调用curry的程序 后续内容的内存地址
let boo1 = curry(/^\d{4,6}$/)
// 将boo1 作为函数调用 此时内层函数需要的参数是str 我们调传入参数: '123123'
// boo2 变量 此时存储 整体函数程序执行完毕 的 return
let boo2 = boo1('123123')
// 打印 boo2 此时存储的是 reg.test(str) ===> /^\d{4,6}$/.test('123123')
//最后判断 满足正则 返回布尔值
console.log(boo2) // true
</script>