2011-04-14 81 views
1

我通常將我的應用程序的各個部分分解爲它們自己的模塊和存在於一個全局對象下的文件。對於生產代碼,我將一個master.js文件中的所有文件組合在一起。因爲我在不同的文件中編寫代碼,並且不想擔心它們加載的順序,所以我檢查全局對象'App'是否存在,以及它是否不創建一個空對象來存儲模塊初始化函數的優化

因此,如果我有10個模塊,那麼在組合文件中,當它只需要運行一次(在開始時)時,它將運行var App = App || {}; 10次。我的問題是,在性能方面是一個大問題,是否值得最後去掉不必要的代碼?對於小型應用程序,我不認爲這是一個大問題,但只是想知道這是否是一個用於更大應用程序的糟糕策略。

// module_1.js 
var App = App || {}; 
App.Module_1 = (function(){ 
    // code 
}()); 

// module_2.js (different file) 
var App = App || {}; 
App.Module_2 = (function(){ 
    // code 
}()); 

回答

0

即使var App = App || {}運行100次,你不會注意到(僅在非常慢的系統)的任何區別,所以我會說:就這麼走了。

一般來說,不要過早優化,看看真正的瓶頸在哪裏並優化它們。

順便說一句,這些額外的匿名的自我調用函數是沒有必要的:使用

App.Module_X = function(){ 
    // code 
}; 

你的變量在使用var已經是App.Module_X範圍內聲明。

+0

啊,謝謝!是的,我現在意識到,自我調用功能並沒有太多與這個問題有關。剛習慣寫他們BC我經常返回我需要訪問的對象。 – Moudy 2011-04-14 19:52:25