클로저 질문

19.11.11 00:24 작성 조회수 94

0

for (var i = 0; i < 100; i++) {
  setTimeout(function() {
    console.log(i);
  }, 1000 * i);
}

강의에 나온대로 이렇게 코드를 쓰면 100이 나오는데

for (let i = 0; i < 100; i++) {
  setTimeout(() => {
    console.log(i);
  }, 1000 * i);
}

이렇게 let을 이용하면 1,2,3 이렇게 나오고, 클로저문제가 해결되네요.

이제 var는 거의 안쓰는데 그냥 let으로 클로저문제는 해결해도 되는건가요??

답변 1

답변을 작성해보세요.

1

네네. 다만 let이라고 클로저가 안 생기는 게 아닙니다. 클로저 문제는 클로저가 문제다가 아니라 클로저로 저 문제를 해결하는 겁니다.