helper() 함수는 매개변수로 j를 갖고 있는데, j는 i 변수의 값을 고정하는 역할을 합니다. 함수 스코프가 하나 더 생겼으므로 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.length는 false이므로 반복문이 끝남
• 1초 후 콜백 실행(j는 0)
• 2초 후 콜백 실행(j는 1)
• 3초 후 콜백 실행(j는 2)
• 4초 후 콜백 실행(j는 3)