Как правильно использовать js замыкание в примере?

Не совсем понимаю суть замыканий, как заставить чтобы console.log() отдавал 1,2,3,4,5..... Про let слышал, но нужно сделать без него
function test(){
	for(var i = 0; i < 10; i++){
		setTimeout(function(){ 
				console.log(i);
		}, 1000);
	}
}
  • Вопрос задан
  • 567 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Про let слышал, но нужно сделать без него

Есть варианты:

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

for (var i = 0; i < 10; i++) {
  setTimeout(function() { 
    console.log(+this);
  }.bind(i), 1000);
}

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

for (var i = 0; i < 10; i++) {
  setTimeout(new Function(`console.log(${i})`), 1000);
}

for (var i = 0; i < 10; i++) {
  setTimeout(function() {
    console.log(10 - i--);
  }, 1000);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы