11. 什么是Composition?实现pipe()

JavaScript

容易  -通过 / -执行

什么是Composition? 其实并不难理解,看看@dan_abramov 's 的说明就知道了。

现在需要你自己写一个pipe() 方法。

假设有一些简单的四则运算方法:

const times = (y) =>  (x) => x * yconst plus = (y) => (x) => x + yconst subtract = (y) => (x) => x - yconst divide = (y) => (x) => x / y

pipe() 可以用来生成新的计算方式

pipe([  times(2),  times(3)])  // x * 2 * 3pipe([  times(2),  plus(3),  times(4)]) // (x * 2 + 3) * 4pipe([  times(2),  subtract(3),  divide(4)]) // (x * 2 - 3) / 4

注意

  1. 为了简单,可以假设传给pipe()的方法都只有一个参数

始终思考更好的解决办法