SOURCE

// 1. 累加
function sum(arr){
    return arr.reduce((pre,cur)=>{
            return pre + cur
        },0)
}
function foo(...args){
    let sum1 = sum(args)
    let fn = function(...arg) {
        let sum2 = sum(arg)
        return foo(sum1 +sum2)
    }
    // 核心内容,重写方法的tostring方法
    //这里做了一个函数劫持,
    //正常返回的是一个函数,并通过字符串的方式打印出来,
    //所以打印的时候会调用toString方法,这里重写该方法,让返回求和结果
    fn.toString=()=>{
        return sum1
    }
    return fn
}
console.log(foo(1)(2)(3))
 
 //2. 连接配置
 function httpHandle(http){
     let res = `${http}`
     let fn = (host)=>{
         return httpHandle(res + `${host}`)
     }
     fn.toString = ()=> {
         return res
     }
     return fn
 }
 console.log(httpHandle('http://')('www.baidu.com')('/zys'))
console 命令行工具 X clear

                    
>
console