参数倒置

参数倒置(flip)指的是改变函数前两个参数的顺序。

  1. var divide = (a, b) => a / b;
  2. var flip = f.flip(divide);
  3. flip(10, 5) // 0.5
  4. flip(1, 10) // 10
  5. var three = (a, b, c) => [a, b, c];
  6. var flip = f.flip(three);
  7. flip(1, 2, 3); // => [2, 1, 3]

上面代码中,如果按照正常的参数顺序,10 除以 5 等于 2。但是,参数倒置以后得到的新函数,结果就是 5 除以 10,结果得到 0.5。如果原函数有 3 个参数,则只颠倒前两个参数的位置。

参数倒置的代码非常简单。

  1. let f = {};
  2. f.flip =
  3. fn =>
  4. (a, b, ...args) => fn(b, a, ...args.reverse());