0
A
回答
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>
相关问题
- 1. 如何实现分解成javascript函数?
- 2. 如何在Swift中实现ROT13函数?
- 3. 如何在OpenCV中实现signum函数?
- 4. 如何在CoreData中实现函数
- 5. 如何在JavaScript中实现这个函数的闭包?
- 6. 如何在PHP/JavaScript中实现等效的Win32函数MessageBox?
- 7. 如何通过Javascript函数在Angular 2中实现AJAX
- 8. 如何实现Master细节类在javascript中查找函数?
- 9. 如何在Java中实现javascript setTimeout函数
- 10. 如何在javascript/jquery中实现这个键盘钩子函数?
- 11. 如何在JavaScript中实现lambda/anonymous函数
- 12. Javascript函数不是实现
- 13. 在C++中,函数重载通常如何实现?
- 14. 如何在Haskell中重新实现“all”函数?
- 15. 如何在javascript中重命名函数
- 16. 实现函数重载
- 17. Python中如何实现多重赋值?
- 18. 如何使用虚函数在C++中实现多态行为?
- 19. javascript中$(document).ready()函数的实现
- 20. 如何实现haskell`\\`函数?
- 21. 如何实现isRePin()函数
- 22. 如何在ruby1.8中重写正则表达式(?<!...)。(重新实现wpautop函数)
- 23. 如何在DataReader上实现Peek()函数?
- 24. Haskell中的库函数如何实现
- 25. 如何实现在Javascript
- 26. 如何多次实现Youtube JavaScript API?
- 27. 如何在现代浏览器中实现lodash _.remove函数?
- 28. 在Javascript中实现多继承
- 29. 在javascript中实现多线程
- 30. 在数组的排序函数中实现异步/等待javascript
您是否在寻找“可变参数”(即可以采取任何数量的参数,如函数' Math.min')? – Thilo
我不认为你可以在javascript中完全这样做,至少你需要一些不同的东西,比如'()'而不是另一个数字,以区分你所得到的事实链条的末端。你想看看[函数currying](http://www.crockford.com/javascript/www_svendtofte_com/code/curried_javascript/index.html) –
使用Ramda,你创建一个curried函数'fnc'来添加它的参数,然后将它传递给'nAry(4,fnc)',但你需要事先知道参数的长度。否则,就像@JamesThorpe提到的那样,你需要返回一个thunk –