我正在尝试制作一种javascript模块化编码风格。
目前我在global.js中声明了一个“挂载变量”,它链接到Web应用程序中的所有页面。它包含全球网站的东西,比如javascript语言切换:
var app = window.app || {};
app.Lang = (function ($) {
"use strict";
var init = function () {
...
};
};
return { init: init };
})($);
app.GlobalLogic = (function ($) {
"use strict";
var ready = $(function () {
app.Lang.init();
});
}($));
如您所见,我正在使用立即执行的函数来初始化文件中加载代码的逻辑。
现在我正在尝试编写一个独立的javascript文件,该文件可以与同一页面上加载的其他文件具有类似的变量名称。这是一个例子:
app.GalleriesAdminLogic = (function ($) {
"use strict";
var MountDivID = "#galleries-management-view";
...
var constructorFunction = function () {
var initialDataObject = $.parseJSON($(MountDivID + " #initial-galleries-list").val());
...
}($));
注意变量MountDivID
。如果同时加载了类似的js文件,那么它还包含名为MountDivID
的变量的定义,是否会产生分辨率冲突?仅从本地函数处理相同名称变量的正确模式是什么?
答案 0 :(得分:2)
在函数内声明的变量是该函数的本地变量。它们对其他函数是不可见的,它们“隐藏”变量,并在函数外部声明相同的名称。