클로저 질문입니다.

20.07.15 15:55 작성 조회수 113

0

for (let i = 0i < numbers.length; ++i) {
  setTimeout(function () {
    const ball = document.createElement("div");
    ball.innerText = numbers[i];
    ball.classList.add("ball");

    //css
    paintBall(ball);

    result.appendChild(ball);
  }, 1000 * (i + 1));
}

로또추첨할 때 저는 이렇게 했는데 공이 한개씩 잘 뜨던데 왜그런건가요???

강의에 의하면은 1000*(i + 1)초 후에 setTimeout안의 number[i]에서 i값이 결정될텐데 

차례대로 number[]의 0번 index부터 마지막 index까지의 요소가 잘 뜨더라고요

답변 1

답변을 작성해보세요.

0

이게 let과 var의 결정적 차이입니다. 둘이 스코프가 달라요.