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