JavaScript之函数组合

前言

有这样的一个需求:输入test(fun1, fun2, fun3...),要求按照fun1(fun2(fun3(...)))的顺序执行函数。

正文

其实这就是一个函数组合的问题

        //函数组合
        //需求:输入test(a,b,c,d,e,f....),执行a(b(c(d(e(f)))))
        function compose () {
            let argus = arguments
            let start = arguments.length - 1
            return function () {
                let i = start
                let result = argus[i].apply(null, arguments)
                while (i--) {
                    result = argus[i].call(null, result)
                }
                return result
            }
        }
        function a (x) {
            console.log(x+1)
        }
        function b (x) {
            return x * 2
        }
        let composefun = compose(a, b)
        composefun(1)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、函数 1.函数概述 1.1认识函数 需求:求圆的面积s = π * r ** 2c = math.sqrt(a...
    hollow_02f9阅读 755评论 0 2
  • 0.日常吐槽 十一小长假真的不要出去玩啊,你会见到你一年也见不到的那么多人,大概就是这样的 这样的 所以还是安安静...
    单嘉伟xx阅读 616评论 0 4
  • 一、函数 1.函数概述 1.1认识函数 需求:求圆的面积s = π * r ** 2c = math.sqrt(a...
    郑元吉阅读 334评论 0 0
  • 在这一章里我来分享一下效能。 效能就是产出与产能的平衡,书中借用会生蛋的鹅,如农夫只想只要金蛋(产出)而...
    A香风盛荷阅读 503评论 0 2
  • 咚…咚咚……咚咚咚……! 好一阵微微急促且令人生厌的敲门声传入耳边,又想到这么早就敲门是有什么急事吗? “大坤,起...
    蚂蚁校长阅读 526评论 2 16