我通常将应用程序的各个部分分解为各自的模块和文件,这些模块和文件存在于一个全局对象下。对于生产代码,我将所有文件合并到一个 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
}());
最佳答案
即使 var App = App || {}
运行 100 次,您不会注意到任何差异(仅在非常慢的系统上),所以我会说:放弃它。
一般来说,不要过早优化,看看真正的瓶颈在哪里并进行优化。
顺便说一句,那些额外的匿名、自调用函数是不必要的:使用时
App.Module_X = function(){
// code
};
使用var
声明的变量已经在App.Module_X
的范围内。
关于javascript - 初始化函数优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5668641/