Показать сообщение отдельно
  #3 (permalink)  
Старый 09.09.2015, 13:38
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Странный вопрос, ну ладно.

1) Тут ошибка
counter(); // counter не функция

Почему? Да потому, что в переменную counter записан результат работы функции, а не ссылка на нее.

2) В целом код работает, т.е, если исправить строку с ошибкой, допустим на
// counter(); 
alert(counter); // 1

то получим результат функции, т.е 1.

3) Почему всегда 1?

var currentCount = 1;

Ну, потому что при вызове функции внутри неё объявляется новая переменная currentCount. которая равна 1.

4) Но стоп, почему 1?? Ведь я...
return currentCount++

увеличил значение на 1.

Нет, не увеличил, ты сначала вернул результат, а потом ее увеличил, но этого ты никогда не увидишь, ибо функция уже вернула результат, следственно - отработала свое.

подробнее тут: https://learn.javascript.ru/operator...%D0%BD%D 1%82
Ответить с цитированием