柯里化

柯里化(currying)指的是将一个多参数的函数拆分成一系列函数,每个拆分后的函数都只接受一个参数(unary)。

  1. function add (a, b) {
  2. return a + b;
  3. }
  4. add(1, 1) // 2

上面代码中,函数add接受两个参数ab

柯里化就是将上面的函数拆分成两个函数,每个函数都只接受一个参数。

  1. function add (a) {
  2. return function (b) {
  3. return a + b;
  4. }
  5. }
  6. // 或者采用箭头函数写法
  7. const add = x => y => x + y;
  8. const f = add(1);
  9. f(1) // 2

上面代码中,函数add只接受一个参数a,返回一个函数f。函数f也只接受一个参数b