我正在使用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
}
我的意思是,它变成了一组匿名函数,而不是保留模块模式。怎么了?