组合函数理解和应用

  ◼ 组合(Compose)函数是在JavaScript开发过程中一种对函数的使用技巧、模式:
    比如我们现在需要对某一个数据进行函数的调用,执行两个函数fn1和fn2,这两个函数是依次执行的;
    那么如果每次我们都需要进行两个函数的调用,操作上就会显得重复;
    那么是否可以将这两个函数组合起来,自动依次调用呢?
    这个过程就是对函数的组合,我们称之为组合函数(Compose Function);
案例:
    <script>
    var num = 100
    //    第一步 对数组 *2
    function double(num){
    return num *2
    }
    //    第二部 对数组平方
    function  pow (num){
    return num **2
    }
    
    console.log(pow(double(num)))
    console.log(pow(double(55)))
    console.log(pow(double(22)))
    
    //    将上面的两个函数组合在一起生成一个新的函数
    function composeFn(num){
    return pow(double(num))
    }
    console.log(composeFn(num))
    console.log(composeFn(55))
    console.log(composeFn(22))
    </script>

实现组合函数

    //通用的封装函数:传入多个函数,自动将多个函数组合到一起挨个调用
    function 
    
    
    
    (...fns){
        // 1.边界判断
        var length = fns.length
        if (length <=0){
            throw  new Error("请输入内容!!!")
        }
        for (var i = 0 ; i<length ; i++){
            var fn = fns[i]
            if(typeof fn !== "function"){
                throw new Error(`传入的第${i+1}个参数不是函数`)
                // break
            }
        }
        // 2.返回的新函数
        return function (...args){
            var result = fns[0].apply(this,args)
            for (var i =1 ;i<length;i++){
                var fn = fns[i]
                result  = fn.apply(this,[result])
            }
            return result
        }
    }
    var newFn = composeFn(double,pow)
    console.log(newFn(55))
posted @   韩德才  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示