SOURCE

// 写法为递归,对js的基础要求较高
// js 函数的 toString 自动调用
// https://blog.csdn.net/Chennfengg222/article/details/104745913
function add (){
    let args = [].slice.call(arguments)
    let fn = function(){
        let fn_args = [].slice.call(arguments)
        return add.apply(null, args.concat(fn_args))
    }
    fn.toString = function(){
       return args.reduce((a,b)=>a+b)
    }
    return fn
}
add(1); 			// 1
add(1)(2);  	    // 3
add(1)(2)(3);       // 6
add(1)(2, 3);       // 6
add(1, 2)(3);       // 6
add(1, 2, 3);       // 6
console.log(add(1)(2)(3))
console 命令行工具 X clear

                    
>
console