如果在原始函數上擴充的話 就得加參數加 if 這造成使用正常功能的話多了一些判斷 不開心
新函數的話又宣告了一塊記憶體給他 多了記憶體消耗~
ringa_lee
這個問題並沒有一個最佳答案, 終究要你從實際項目出發, 而且你應該從擴展性/維護性/可讀性之類的角度來思考和做選擇, 這些會比較重要. 至於內存消耗之類的你就屬於瞎操心了, 哪怕目前最龐大的js應用, 也不至於對一個函數的內存佔用這麼鐃銖必究...
嘛, 我還是補充一下吧, 如果你非要要求高性能, 我想到了一種方式:
function foo( flag ) { foo = !!flag? function() { return true; }: function () { return false; } return foo(); } foo(true); console.log( foo ); // 你可以看到最终的 foo 不再是一开始定义的样子
直到第一次使用的時候才確定函數的作用, 並且在確定以後去掉所有無用邏輯. 懶加載+內存佔用最小.理論上, 多次調用應該是性能最優的.
函數式程式設計與命令式程式設計
這個問題並沒有一個最佳答案, 終究要你從實際項目出發,
而且你應該從擴展性/維護性/可讀性之類的角度來思考和做選擇, 這些會比較重要.
至於內存消耗之類的你就屬於瞎操心了, 哪怕目前最龐大的js應用, 也不至於對一個函數的內存佔用這麼鐃銖必究...
嘛, 我還是補充一下吧, 如果你非要要求高性能, 我想到了一種方式:
直到第一次使用的時候才確定函數的作用, 並且在確定以後去掉所有無用邏輯.
懶加載+內存佔用最小.
理論上, 多次調用應該是性能最優的.
函數式程式設計與命令式程式設計