function f () { /* 代码 */ }
console.log(f(1) == 1) console.log(f(1)(2) == 3) console.log(f(1)(2)(3) == 6)
在函数f内用一个变量数组来存放参数集合,然后返回一个函数(我命名为inner),这个inner函数的作用是收集传递进来的参数将它添加到参数集合中。 function f () { let args = [...arguments] var add = function () { args.push(...arguments) return add } add.valueOf = function () { return args.reduce((cur, pre) => { return cur + pre }) } return add } console.log(f(1) == 1) console.log(f(1)(2) == 3) console.log(f(1)(2)(3) == 6)