node.js 비동기 코딩을 할 때 질문이 있습니다.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
I 혼란있어 다음은 예시적인 코드이다. 나는 로컬 변수가 foo에 의해 변경되기 때문에, 그것은 출력 ↓을해야한다고 생각 (2)
1 start
2 start
2
2
/방법 Node.js를 내부 콜백 함수 액세스를 위해 로컬 변수를 유지 왜 너희들이 말해 주 시겠어요? 감사합니다.
찾고있는 개념은 [closure] (http://stackoverflow.com/questions/111102/how-do-javascript-closures-work)입니다. – geekosaur