0

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

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

但是,有人告诉我有一种方法可以在没有本地人的情况下将库组织到命名空间。

在这篇文章中,用户 Raynos 说这可能是组织图书馆的最佳方式。命名空间的本地变量为零。

我怎样才能把当地人一起排除在我的图书馆里?

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

1 回答 1

1

我能满足您的要求的最接近的方法是“隐藏”参数中的变量:

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

然而有两件事:

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

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

于 2012-08-17T18:31:23.973 回答