2016-04-27 18 views
0

我的應用程序是本地服務器,每秒接收約2/3請求JavaScript性能,重新創建函數或綁定呢?

在每個請求,IT賣場和更新數據,處理一些計算,更新視圖(反應),...

我想知道什麼是快,當我不得不使用封閉:

  • 只需創建功能,我需要它:

    var parentValue = 'ok';

    randomAsyncFunction(function() { console.log(parentValue); }

  • 創建一個 「全球性」 功能,然後回調提供所需值綁定:

    function testCallback(value) { console.log(value); }

    var parentValue = 'ok'; randomAsyncFunction(testCallback.bind(undefined, parentValue));

注:論文僞代碼會被執行2 /每秒3次。對於第二個例子,testCallback函數將被創建一次,並且綁定將被調用而不是重新創建該函數。

那麼,使用第二個例子好還是壞呢?

+0

每秒23個請求?沒什麼。你不應該關心性能。 – Bergi

回答

1

bind和閉包函數表達式都創建一個新的函數對象。它們在性能上的差異可以忽略不計。如果你真的關心足夠的話,用你的實際代碼和實際數據運行一個基準,看看哪個解決方案更快。

就你而言,你應該只關心哪個解決方案更具可讀性和可維護性。沒有一個比另一個更好或更差,你必須決定自己更喜歡哪一個。