函数柯里化

15 阅读1分钟

函数柯里化:

    因为有多个形参的函数在调用时  
    实参的个数必须满足对应的形参个数 函数才能正常执行

    多次调用同一个函数 均要做到对应实参的传入 
    当有相同的实参 多次调用都需要重复的传参就会让调用函数变得繁琐 
    

好的 现来我们来解释下面简单的举例来介绍 什么叫做函数柯里化

        <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>
            
image.png