0

私は Javascript Module Pattern を使用しています。これにより多くの利点が得られます。実行時に以下を使用して JS ファイルをロードしています。

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

myFile.js の 1 行目は 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
}

つまり、モジュール パターンを維持する代わりに、無名関数のグループになりました。どうしたの?

4

0 に答える 0