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 –