Задать вопрос
  • Почему идет обращение сразу к вложенной функции и игнорируется внешняя?

    @ClayRing

    Почему присваиваем переменной функцию, а если так не сделать, и просто поместить в alert саму функцию, выводит просто её содержимое в текстовом виде:


    В первом примере вы выводите результат работы функции `counter()` (это число). Во втором примере вы выводите результат работы функции `makeCounter()` (это функция `counter()`).

    Попробуйте сделать так:
    `alert(makeCounter()())`
    И посмотреть на содержимое. Думаю станет понятнее.


    Почему в следующих итерациях count увеличивается на 1. Хотя, функция makeCounter должна вызываться как бы заново, и присваивать переменной count = 0.

    С чего это она должна вызываться заново? Вы вызываете `makeCounter()` только один раз, а далее на каждой итерации вызываете только `counter()`.
    Ответ написан
    2 комментария