Функции, счетчик, нуб.
Здравствуйте, я совсем недавно начал осваивать js и у меня появилась пара вопросов по функциям.
1. То, что cntr() возвращает [Function] мне понятно, но почему counter() возвращает правильный результат (в данном случае счетчик) при том, что "counter = cntr()"? 2. Чем отличается cntr()() от counter()? const cntr = () =>{ let i = 0; return (() => { i++; return i; }) } console.log(cntr()); //[Function] console.log(cntr()()); //1 console.log(cntr()()); //1 const counter = cntr(); console.log(counter()); //1 console.log(counter()); //2 console.log(counter()); //3 console.log(counter()); //4 |
Цитата:
В переменной counter содержится анонимная функция (замыкание), которую вернула функция cntr. Вызов функции, которая сохранена в переменной counter не вызовет повторно функцию cntr. Цитата:
Надеюсь понятно объяснил. |
Спасибо большое. Фраза "counter не вызовет повторно функцию cntr" все поставила на свои места.
|
Часовой пояс GMT +3, время: 08:29. |