链式调用

//实现以下链式调用

   //实现
        var res1 = pipe(2).double.pow.do; //256
        var res2 = pipe(4).add.double.do; //12
        var res3 = pipe(6).sub.add.double.do //12
        console.log(res1, res2, res3)
 
var pipe = function (value){
            let fnTasks = []
            return new Proxy({},{
                get: function(target, property, receiver){
                    if(property === 'do'){
                        return fnTasks.reduce((prev, cur)=>{
                            return cur(prev)
                        }, value)
                    }else{
                        fnTasks.push(window[property])
                        return receiver
                    }
                }
            })
        }

        var add = n => n + 2
        var sub = n => n - 2
        var double = n => n * 2
        var pow = n => Math.pow(n, n)
     
posted @   青Fire  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示