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


什么是柯里化

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

未柯里化前的函数

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

  目录