시작하기 전에 ECMA 스크립트 사양이 아마도 내 질문에 대답 할 것이라는 것을 알고 있습니다. 그러나 나는 이해할 수있는 대답을 얻기 위해 그것을 요구하고 있습니다. 이 코드를 실행하면Javascript의 익명 함수가 외부 함수의 변수에 액세스 할 수있는 이유를 설명하십시오.
function test1(param) {
alert(param);
}
function test2() {
var testvar = 99;
setTimeout(function(){ test1(testvar); }, 1000);
}
test2();
, 나는 99 내 질문은, test2
에, test2
완료가 실행 한 후 null이 될 수 없습니다 testvar
해야한다 보여주는 팝업 상자를 얻을 :
setTimeout
의 익명 함수는
testvar
값을 어떻게 얻습니까? setTimeout이 호출 될 때 스택 복사가 진행 중입니까?
힌트 : Google "폐쇄". – cHao
보드카 한 병을 들고이 질문을 읽으십시오. 나는 당신에게 대답을하려고 노력할 것이지만 나의 사무실에는 알코올 정책이 없다. http://stackoverflow.com/questions/500431/javascript-variable-scope – aehiilrs
굉장합니다. 도와 주셔서 감사합니다. – quuxbazer