node.jsの非同期コーディングを行うときに質問があります。コード例は次のとおりです。
function foo(arg) {
var a = arg;
console.log(a + ' start');
setTimeout(function () {console.log(a);}, 500);
};
foo(1);
foo(2);
以下を出力します。
1 start
2 start
1
2
よくわかりません。ローカル変数はfoo(2)によって変更されるので、出力するべきだと思いました↓
1 start
2 start
2
2
node.jsが内部コールバック関数アクセス用のローカル変数を保持する理由/方法を教えてください。どうもありがとう!