강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

ㅇㅇ님의 프로필 이미지
ㅇㅇ

작성한 질문수

웹 게임을 만들며 배우는 자바스크립트

클로저 문제 해결법

클로저 질문

작성

·

174

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이라고 클로저가 안 생기는 게 아닙니다. 클로저 문제는 클로저가 문제다가 아니라 클로저로 저 문제를 해결하는 겁니다.

ㅇㅇ님의 프로필 이미지
ㅇㅇ

작성한 질문수

질문하기