1

我正在尝试制定一种 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,会不会造成解析冲突?仅从本地函数处理同名变量的正确模式是什么?

4

1 回答 1

2

在函数内部声明的变量是该函数的局部变量。它们对其他函数不可见,并且它们“隐藏”了在函数外部声明的同名变量。

于 2013-05-19T22:17:38.723 回答