模块模式代码在运行时作为普通匿名函数加载

时间:2011-10-01 12:42:20

标签: javascript module-pattern

我正在使用Javascript模块模式,它提供了许多好处,我在运行时使用以下命令加载JS文件:

return $.ajax({
    url: "../../Scripts/myFile.js",
    dataType: "script",
    cache: true
});

myFile.js的第一行是myModule.Loaded = {},我在父(调用)脚本上使用它来确保加载myFile.js。

这是myFile.js的前几行:

myModule.Loaded = {};
myModule.sub1 = (function () {
    // some code
})();

但会发生的是,myModule.Loaded值未定义,这给人的印象是文件尚未加载,即使在Firefox Firebug上,我可以看到脚本选项卡中加载的文件,但它丢失了模块定义,如下所示:

// the 1st line (myModule.Loaded = {}) vanished
function () {
    // the same code as above
}

我的意思是,它变成了一组匿名函数,而不是保留模块模式。怎么了?

0 个答案:

没有答案