亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

天涯盡頭無女友 2018-11-15 14:13:32
如果在原有函數上擴展的話 就得加參數加 if 這造成使用正常功能的話多了一些判斷 不開心新建函數的話又聲明了一塊內存給他 多了內存消耗~
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

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

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

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

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


查看完整回答
反對 回復 2018-12-11
  • 1 回答
  • 0 關注
  • 505 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號