function add(...num) {
let res = 0 //第一次调用函数时生成一个闭包来存储结果
num.forEach(item => res += item) //遍历输入参数加到res上
let ret = function (...num) {
num.forEach(item => res += item)
return ret
}
ret.toString = function () {
return res
}
ret.valueOf = function () {
return res
}
return ret
}
console.log(add(1)); // 1
console.log(add(1)(2)); // 2
console.log(add(1)(2)(3)); // 6
console.log(add(1)(2)(3,7)(4,5,6));// 28
你这里输出的结果其实是
f 1
、f 6
...第 84 题:请实现一个 add 函数,满足以下功能