Помогите разобраться
Приветствую всех!
Недавно принялся изучать javascript. Стали любопытны замыкания. В учебных материалах наткнулся на пример: function makeCounter() { function counter() { return counter.currentCount++; }; counter.currentCount = 1; return counter; } var count = makeCounter(); alert( count() ); // 1 alert( count() ); // 2 var count2 = makeCounter(); alert( count2() ); // 1 alert( count2() ); // 2 alert( count2() ); // 3 Могли бы вы мне объяснить физику процесса? А именно преобразования, которые происходят тут. Вложенные функции понятны, Lexical Env. тоже. Но, почему объявляется именнованная функция, а после идет обращение как к переменной return counter; ? Почему counter принимает значение " function counter() {return counter.currentCount++;};"? Буду очень признателен за ваше время. Нужна помощь. Заранее спасибо |
Ответ на свой вопрос нашел в видео:
https://www.youtube.com/watch?v=UsFPvkWeUgw Достаточно корректно и понятно все описано, возможно пригодиться кому-нибудь. |
Часовой пояс GMT +3, время: 06:39. |