在javascript中隔离此引用

时间:2013-05-19 22:15:36

标签: javascript

我正在尝试制作一种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的变量的定义,是否会产生分辨率冲突?仅从本地函数处理相同名称变量的正确模式是什么?

1 个答案:

答案 0 :(得分:2)

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