好的,假设我有一个在“显示模块模式”中设置的网络应用程序(Javascript),并且我有两个使用完全相同数据的模块。
例子:
(让我们假设这两个函数存在于不同的模块中是有原因的。毕竟这只是一个例子)
var modOne = (function () {
var foos = document.getElementsByClassName("foo");
var hideFoos function () {
var i;
for (i=0; i < foos.length ; i++) {
foos[i].style.visibility = "hidden";
}
}
return {
hideFoos: hideFoos
};
})();
var modTwo = (function () {
var foos = document.getElementsByClassName("foo");
var showFoos function () {
var i;
for (i=0; i < foos.length ; i++) {
foos[i].style.visibility = "visible";
}
}
return {
showFoos: showFoos
};
})();
如您所见var foos
,每个模块中都声明了一个相同的变量 ( )。这似乎是多余的,但是在另一个变量中引用该变量会使一个模块依赖于另一个模块。所以你不妨把它们结合起来。我看到的第三个选项是将共享变量创建为全局变量,这有点违背了拥有模块的目的。
因此,基于这三个选项,我会说在每个模块中单独定义变量将是最好的选择。
这个对吗?