我想摆脱某个命名空间中的局部变量。
这是我的库的顶部,我设置了一些本地对象来保存其他对象 - 模型,视图,控制器。
但是我被告知有一种方法可以将没有本地的库组织到命名空间。
在这个post here中,用户Raynos说这可能是组织库的最佳方式。将本地化为零到命名空间。
如何一起消除我的图书馆的本地人?
(function (window, document) {
"use strict";
var Mo = {},
Vi = {},
Co = {},
Su = {};
答案 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, {}, {}, {}, {});
但有两件事:
这些参数的范围与您试图摆脱的变量完全相同(即它们是匿名函数的本地变量)。
这将Mo
,Vi
,Co
和Su
的声明(在函数的参数列表中,位于文件顶部)和它们的声明分开初始化(在传递给函数的参数中,在文件的底部)。这使得代码的可读性和可维护性降低,这可能不是您的目标。