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

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

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект