スコープ外の変数を処理するために jQuery コールバックが必要な状況があります。簡単にするために、次のコードを想定します。
$('#myBtn').on('click', function(e) {
var num = 1;
// assume this returns the following:
// { success : true, num : 1 }
$.getJSON('/api/get_number', {}, function(response) {
if ( response.success ) {
// here, num is unknown unless I define it as a
// global variable
num += response.num ;
}
});
console.log(num); // => want 2, get 1
});
コールバック関数内で num を使用できるようにしたいと思います。グローバル変数を宣言せずにこれを行う良い方法は何ですか (onclick 関数の外で num を宣言します)? サーバーから送信せずに引数として渡す方法はありますか? ありがとう。