消除命名空间中的局部变量

时间:2012-08-17 18:00:52

标签: javascript

我想摆脱某个命名空间中的局部变量。

这是我的库的顶部,我设置了一些本地对象来保存其他对象 - 模型,视图,控制器。

但是我被告知有一种方法可以将没有本地的库组织到命名空间。

在这个post here中,用户Raynos说这可能是组织库的最佳方式。将本地化为零到命名空间。

如何一起消除我的图书馆的本地人?

(function (window, document) {
    "use strict";
    var Mo = {},
        Vi = {},
        Co = {},
        Su = {};

1 个答案:

答案 0 :(得分:1)

我最接近你的要求是在参数中“隐藏”变量:

(function(window, document, Mo, Vi, Co, Su) {
    "use strict";
    // The rest of your code here, using the arguments instead of variables...
})(window, document, {}, {}, {}, {});

但有两件事:

  • 这些参数的范围与您试图摆脱的变量完全相同(即它们是匿名函数的本地变量)。

  • 这将MoViCoSu的声明(在函数的参数列表中,位于文件顶部)和它们的声明分开初始化(在传递给函数的参数中,在文件的底部)。这使得代码的可读性和可维护性降低,这可能不是您的目标。