⇒ 주로 은닉화 (private variable)
function func () {
for (var i = 0; i < 5; i++){
setTimeout(() => console.log(i), 100);
}
}
func(); //5 5 5 5 5
i
의 값을 가져온다.i
는 5이다. — 이미 5까지 수행을 마친 상태의 콜스택function func() {
for (var i = 0; i < 5; i++) {
((j) => setTimeout(() => console.log(j), 100))(i);
}
}
func(); // 0 1 2 3 4
→ 새로운 스코프를 형성한다.
→ 콜백함수가 참조할때 즉시 실행 함수 시점의 i
를 가진다.