JS 中的 compose 函数 绘图分析函数执行过程

在函数式编程中,经常会出现多个函数组合,像这样:

    const add1 = (x) => x + 1
    const mul3 = (x) => x * 3
    const div2 = (x) => x / 2
    
    add1(mul3(div2(add1(6))))	// 11.5

这样虽然能够完成计算,但是可读性很差,所以我们需要构造一个函数完成上面的功能:

   function compose(...funcs) {
   	if (funcs.length === 0) {
   		return arg => arg
   	}
   	if (funcs.length === 1) {
   		return funcs[0]
   	}
   	return funcs.reduce((a, b) => (...args) => a(b(...args)))
   }
   compose(add1, mul3, div2, add1)(6);	// 11.5

JS 中的 compose 函数 绘图分析函数执行过程_第1张图片

你可能感兴趣的:(javascript,javascript)