// 实现思路
// 使用闭包作用域保存值
// 可以理解为函数每次执行,都push一个数进数组,类似promise的实现方式
function sum () {
// 初始化
var arr = [...arguments];
// 初始化保存函数,不能使用箭头函数,箭头函数没有自己的作用域
var _add = function () {
arr.push(...arguments);
return _add;
}
_add.valueOf = function () {
return arr.reduce((t, c) => t + c)
}
return _add
}