搜尋

首頁  >  問答  >  主體

javascript - 函數新增一個功能是選擇在原有函數上擴充還是新建一個函數~

如果在原始函數上擴充的話 就得加參數加 if 這造成使用正常功能的話多了一些判斷 不開心

新函數的話又宣告了一塊記憶體給他 多了記憶體消耗~

ringa_leeringa_lee2786 天前555

全部回覆(2)我來回復

  • 高洛峰

    高洛峰2017-05-19 10:25:44

    這個問題並沒有一個最佳答案, 終究要你從實際項目出發,
    而且你應該從擴展性/維護性/可讀性之類的角度來思考和做選擇, 這些會比較重要.
    至於內存消耗之類的你就屬於瞎操心了, 哪怕目前最龐大的js應用, 也不至於對一個函數的內存佔用這麼鐃銖必究...

    嘛, 我還是補充一下吧, 如果你非要要求高性能, 我想到了一種方式:

    function foo( flag ) {
       foo = !!flag? function() {
           return true;
       }: function () {
           return false;
       }
       return foo();
    }
    foo(true);
    console.log( foo ); // 你可以看到最终的 foo 不再是一开始定义的样子

    直到第一次使用的時候才確定函數的作用, 並且在確定以後去掉所有無用邏輯.
    懶加載+內存佔用最小.
    理論上, 多次調用應該是性能最優的.

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:25:44

    函數式程式設計與命令式程式設計

    回覆
    0
  • 取消回覆