处理JavaScript中的大量全局变量

时间:2014-05-10 22:45:15

标签: javascript global-variables global

我有一个JavaScript应用程序,它使用了大量的全局变量(例如,其中几百个 - 它是C程序的一个端口,所以我没有这样写)。显然,在Window对象中有这么多变量是非常糟糕的做法,但是我很难想出一个非冗长的方法来做到这一点。
目前我认为这是前进的方向:

var myApp = {};

//file1.js:
myApp.variables = (function() {
    var var1, var2, var3;
    var items = new exampleConstructorFunction();
    var etcereta = [];
})();

//file2.js:
myApp.gameplay = (function() {
    //gameplay code
})();

//file3.js:
myApp.scheduling = (function() {
    //timing code
})();

但问题是,为了从myApp.variablesgameplay中定义的函数访问timing中的任何变量,您需要将其指定为myApp.variables.var1当你需要经常使用它时,这对可读性来说非常糟糕。有什么建议吗?

3 个答案:

答案 0 :(得分:4)

您可以直接将当前全局变量存储在myApp中,或者您可以避免使用该方法并将整个脚本包装在匿名函数中并执行它 - 例如(function() { })()然后您不需要命名空间变量使它们不在全球范围内。

答案 1 :(得分:0)

如果你只关心变量名的长度,你不能在本地范围内定义对它的引用吗?

var v = myApp.variables;

答案 2 :(得分:0)

我使用ASP,Windows服务器,MS SQL DB,但这也可以在PHP,基于Linux的服务器,MySQL DB中完成。您需要创建一个或多个DB,然后编写ASP脚本(或PHP脚本)以将变量的值存储在DB中,然后(再次使用ASP / PHP脚本)调用/使用它们。这不是一个简单的脚本编写任务,但在ASP(PHP论坛)中有很多可以调整的例子。一旦编写脚本并存储在服务器端DB中,就可以重新使用,修订。可以容纳许多数据字段和值。 HTH