2011-04-14 76 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