//Object approach
$.myutils = {
addNumbers : function(a,b){
//assuming a and b are integers for simplicity
return a + b;
}
subNumbers : function (a,b){
//assuming a and b are integers for simplicity
return a - b;
}
};
//Usage
$.myutils.addNumbers(20,10);
$.myutils.subNumbers(20,10);
//function approach
$.myutils = function()
{
return {
addNumbers : _addNumbers,
subNumbers : _subNumbers
};
_addNumbers : function(a,b){
//assuming a and b are integers for simplicity
return a + b;
}
_subNumbers : function (a,b){
//assuming a and b are integers for simplicity
return a - b;
}
}
//Usage
$.myutils().addNumbers(20,10);
$.myutils().subNumbers(20,10);
-1
A
回答
0
簡答:對象更快。
你的函數返回一個對象 - 爲什麼它比直接對象更快?
2
雖然這可能被認爲過早優化的情況下,認爲語義不同和第一種方法是可能的優選的(如存在存儲沒有額外的狀態)的情況。
不管怎樣,第一個「對象」的方法是因爲相同功能它們是同一對象屬性調用「更快」(爲「更快」一些值)。
第二個「函數」的方法將是「慢」(代表「較慢」的某個值),因爲每一次執行myutils
功能(但要記住,函數也是對象)它返回一個新對象即具有新功能作爲屬性。因此,根據定義,必須做更多的工作。 (此外,第二種方法將不會運行,因爲它將它翻譯爲我的腦海中的「工作代碼」。)
快樂編碼。
繼zerkms的評論,我添加了一個jsperf測試用例:http://jsperf.com/5931661(其中還包括適當的錯誤修復;既有「實例」實際上被打破)。
相關問題
- 1. MYSQL函數或PHP函數,哪一個更好?
- 2. 哪一個是最好的OLEDB或Excel對象或數據庫
- 3. 哪種設計更好?單個對象或每次傳遞一個對象?
- 4. 緩存一個值或調用函數 - 哪個更好?
- 5. 在DDD中哪一個更好的域對象建模?
- 6. 視圖中的對象或輸出緩存:哪個更好?
- 7. 面向對象編程與分裂函數...哪個更好?
- 8. 從一個變量對象中執行一個函數
- 9. TextView或WebView中哪一個更好?
- 10. Java:哪個更快,數組或對象?
- 11. 哪一個更好Singleton類或共享(靜態)成員函數
- 12. 使用一個全局對象或參數來傳遞配置數據,哪一個在Scala中更好?
- 13. 更好地使用PHP中的對象或靜態函數?
- 14. 如何在單個jQuery對象上執行一個函數?
- 15. 哪一個更好的FCM或GCM?
- 16. 哪個更好? - 每次查詢數據庫或保留會話中的對象
- 17. 對象中的JavaScript函數執行
- 18. 在python,del或delattr中哪個更好?
- 19. SHA1或AES - 在asp.net中哪個更好?
- 20. JSON或HTML:哪個輸出可以執行得更好?
- 21. 哪一個更好? - 在運行時或設計時間在android
- 22. 決定是否運行一個函數,哪種方式更好?
- 23. 哪個是更好的做法從另一個對象
- 24. Smalltalk中的函數對象(或執行沒有`value:`的塊)
- 25. 哪個更好?使用2個數組或數組對?
- 26. 對於所有或多個DLL,哪個更好一個DLL?
- 27. 哪一個更好的JSON設計:直接使用對象或對象的數組
- 28. 哪個更好? DataTable.Select()或Linq過濾對象?
- 29. 選擇一對多哪一個更好
- 30. 哪種方式更好地調用函數靜態方式或對象方式?
http://jsperf.com/救援 – zerkms 2011-05-09 01:41:15
功能**是**對象。 – BoltClock 2011-05-09 01:41:24
face palming .... – Reigel 2011-05-09 01:47:08