Показать сообщение отдельно
  #1 (permalink)  
Старый 26.01.2016, 00:33
Интересующийся
Отправить личное сообщение для Bruha1991 Посмотреть профиль Найти все сообщения от Bruha1991
 
Регистрация: 17.01.2016
Сообщений: 10

Объясните локальную переменную в функции
Здравствуйте! Есть код
function makeCounter() {
  var currentCount = 1;

  return function() { // (**)
    return currentCount++;
  };
}

var counter = makeCounter(); // (*)

// каждый вызов увеличивает счётчик и возвращает результат
alert( counter() ); // 1
alert( counter() ); // 2
alert( counter() ); // 3

// создать другой счётчик, он будет независим от первого
var counter2 = makeCounter();
alert( counter2() ); // 1

Не могу понять:
1) почему наращивается первый счетчик;
2) почему второй счетчик независим (т.е. значения снова начинаются с
1-цы) от первого.
Ответить с цитированием