如果在原始函數上擴充的話 就得加參數加 if 這造成使用正常功能的話多了一些判斷 不開心
新函數的話又宣告了一塊記憶體給他 多了記憶體消耗~
高洛峰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 不再是一开始定义的样子
直到第一次使用的時候才確定函數的作用, 並且在確定以後去掉所有無用邏輯.
懶加載+內存佔用最小.
理論上, 多次調用應該是性能最優的.