Показать сообщение отдельно
  #2 (permalink)  
Старый 11.02.2019, 10:20
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Сообщение от ndrwKrpnk
почему counter() возвращает правильный результат (в данном случае счетчик) при том, что "counter = cntr()"?
counter !== cntr()
В переменной counter содержится анонимная функция (замыкание), которую вернула функция cntr.
Вызов функции, которая сохранена в переменной counter не вызовет повторно функцию cntr.

Сообщение от ndrwKrpnk
Чем отличается cntr()() от counter()
В первом случае вы постоянно будете создавать новый счетчик и инкрементировать его, во втором будете инкрементировать уже созданный счетчик.


Надеюсь понятно объяснил.
Ответить с цитированием