一个简单的柯里化函数示例


什么是柯里化

  • 柯里化就是把一个多参数的函数转换为一系列只带单个参数的函数

    未柯里化前的函数

    function multiply(a, b, c){
      return a * b * c;
    }
    
    let res = multiply(123);
    console.log(res); // 6

    柯里化后的函数

    function multiply(a){
      return b => {
        return c => {
          return a * b * c;
        }
      }
    }
    
    let res = multiply(1)(2)(3);

    柯里化过程

  • multiply(1,2,3) 函数调用转换为 multiply(1)(2)(3) 调用
  • 拆分multiply(1)(2)(3)便于理解
    const multiply1 = multiplytiply(1);
    const multiply2 = multiply1(2);
    const multiply3 = multiply2(3);
    console.log(multiply3); // 6

  目录