函数的柯里化 JS

shuke 2022-1-4 780

函数的柯里化

  • 概念:即将一个接受多个参数的函数转为只处理一个参数并返回新函数,新的函数就处理剩余的参数。

  • 一般使用流程

    • 定义一个函数接受第一个参数

    • 函数中处理第一个参数后返回一个新函数,

    • 新函数传入剩余需要处理的参数

       function outer(第一个参数){
           function inner(剩余的参数){
       
           }
           return inner;
       }
       //使用
       outer(第一个参数)(剩余的参数)//
      • 其实根据语法来看,就是利用了闭包来实现了参数的一个分离效果,所以我们可以理解柯里化是闭包的一个运用技巧

  • 柯里化好处

    • 参数分离

    • 参数复用

  • 例子1:基础语法:实现多个参数的累加操作

     function add(a){
         function addinner(b,c){
             return a+b+c;
         }
         return addinner;
     }
     //使用
     add(1)(2,3);//返回结果为6
  • 例子2:柯里化应用— 正则表达式复用

     传统:
     function checkRegExp(reg,data){
         return reg.test(data);
     }
     // 手机号验证
     let r1 =  checkRegExp(/^1[3-9]\d{9}$/,"13888888888");
     let r2 = checkRegExp(/^1[3-9]\d{9}$/,"138888888889");
     let r3 = checkRegExp(/^1[3-9]\d{9}$/,"12888888889");
     
     利用柯里化完成第一个参数可复用
     function checkRegExpPlus(reg){
         function inner(data){
             return reg.test(data)
         }
         return inner;
     }
     let checkPhone =  checkRegExpPlus(/^1[3-9]\d{9}$/);
     console.log(checkPhone("13888888888"));
     console.log(checkPhone("13888888889"));
     console.log(checkPhone("138888888822"));
  •  自行完成身份证验证的柯里化过程,完成正则表达式复用


最新回复 (0)
全部楼主
返回