0

Объясните мне, почему в данном примере при первом вызове счетчика на выходе получаем 1.
Ведь я так понял,что даже при первом вызове произойдет currentCount++ с областью переменных родителя, где currentCount = 1, таким образом вывелось 2.

function makeCounter() {
    var currentCount = 1;
return function() { 
    return currentCount++;
};

}

var counter = makeCounter();

console.log( counter() ); // 1 console.log( counter() ); // 2 console.log( counter() ); // 3

var counter2 = makeCounter(); console.log( counter2() ); // 1

teran
  • 29,377
  • 1
    @Grudny уверен, что вопрос про замыкания, а не про i++/++i ? – teran Jul 04 '19 at 12:23
  • 1
    @teran, смотри ответ Peter Olson он как раз об этом – Grundy Jul 04 '19 at 13:48
  • 1
    @teran, кроме того, в самом вопросе-дубликате почти дословно повторяется текущий: Вопрос 1: почему при первом вызове функции переменная currentCount = 1, ведь возвращаемое функцией currentCount++, следовательно должно быть 2. – Grundy Jul 04 '19 at 13:49
  • @Grundy и действительно :) надо было открыть вопрос ) я только заголовок прочитал :) – teran Jul 04 '19 at 14:00

0 Answers0