0
私のWebページは、JQuery命令$.getScript(...)
を介して動的にロードする複数のjavascriptファイルで構成されています。しかし、私は理解できない行動に気付いた。例えばgetScript使用時のJavaScript varaiblesの可視性
仮定myScript1.js
は次のようになります。
var a;
var b;
function ab() {
a=1;
b=2;
}
私は今anotherScript.js
内で以下ならば、私は次のログを取得します:
$.getScript("scripts/myScript1.js", function() {
ab();
console.log(a); //prints 1
console.log(b); //prints 2
})
私はドン奇妙なこと」次のことが分かります: oneMoreScript.js
の中で次のようにすれば、私は同じ出力を得るでしょう:
$.getScript("scripts/myScript1.js", function() {
console.log(a); //prints 1
console.log(b); //prints 2
});
なぜ最後のコード例の変数はまだ宣言されていますか?getScript
命令はすべて実際にはajax命令であり、chacheがアクティブ化されていない場合(デフォルトはなし)、getScript
命令が実行されるたびに、目的のスクリプトがサーバーから再度ロードされて実行されます。このコードで
スクリプトはグローバルスコープにロードされます –
$ .getScriptは単にあなたのページに '