重複の可能性:
JavaScript コールバック関数でのローカル変数の設定
変数で何が起こっているのかわからないため、スクリプトのデバッグに苦労しています。
何が起こったのかを追跡するために「console.log」を実行しようとしましたが、驚いたことに、なぜそれが起こるのかわかりません..
これは状況です:
私はこのJavaScriptコードを持っています:
tmplReplaceContent : function(json, tmpl, target){
var template = tmpl;
var regex = new RegExp("some regex");
...
if (!regex.test(tmpl)) {
$.get(msi.vars.api_url + tmpl + '.tmpl', function(tmplOut){
console.log("regex check passed!");
template = tmplOut;
console.log(template);
});
} else {
console.log("failed regex check");
}
console.log(template);
...
それは最初console.log(template)
に私の望ましい結果を生み出します
しかし、2番目は元の値に戻ります:
例えば
tmpl = somevar; // that returns true on if statement
template = tmpl;
console.log(template) // 1st. will return value of somevar
解決策は何だと思いますか? また、コードが失敗するのはなぜですか?