是否有任何变体可以在JS中实现添加功能?
console.log(add(1)(3)(5)(35)); // 44
可以有任意数量的函数调用。
答案 0 :(得分:0)
您可以为该函数指定半私有属性,例如:
function doSum(sum, reset){
doSum.sum = reset ? 0 : (doSum.sum || 0);
doSum.sum += sum || 0;
return !sum && !reset ? doSum.sum : doSum;
};
// calculate 1 + 2 + 3 + 4
var total = doSum(1)(2)(3)(4)();
// reset, calculate 10 + 20 + 30 + 40
var total2 = doSum(10,true)(20)(30)(40)();
// continue, calculate total2 + 100 + 100 + 50
var total2a = doSum(100)(100)(50)();
// print result
document.querySelector('#result').textContent =
'total = ' + total + '\n' +
'total2 = ' + total2 + '\n' +
'total2a = ' + total2a;
<pre id="result"></pre>