더북(TheBook)

helper() 함수는 매개변수로 j를 갖고 있는데, ji 변수의 값을 고정하는 역할을 합니다. 함수 스코프가 하나 더 생겼으므로 i의 값이 j에 저장되면서 고정됩니다. setTimeout()의 클로저는 이제 i 대신 j를 가리키고 있습니다.

i가 0일 때 setTimeout(helper(0), 1000) 실행, j는 0

i가 1일 때 setTimeout(helper(1), 2000) 실행, j는 1

i가 2일 때 setTimeout(helper(2), 3000) 실행, j는 2

i가 3일 때 setTimeout(helper(3), 4000) 실행, j는 3

i가 4일 때 4 < numbers.lengthfalse이므로 반복문이 끝남

1초 후 콜백 실행(j는 0)

2초 후 콜백 실행(j는 1)

3초 후 콜백 실행(j는 2)

4초 후 콜백 실행(j는 3)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.