Объяснение отличное, только стоит добаваить что присваивание "let d=сs2()" функции переменной необходимо для того чтобы сохранить переменную let c, от уничтожения при каждом новом вызове. Если три раза подряд вызвать cs2(), sc2(), sc2() то получим 1, 1, 1. А так если присвоить код функции переменной то переменная сохранит let c, до следующего вызова.
Отличное дополнение! Для себя сформулирую: созданная переменная - d это по сути объявление функции (той, что внутри cs2) в глобальной области видимости. Функция есть ее код + набор доступных для нее переменных, т.е. доступна переменная - с. JS "видит" эту связь и поэтому, когда заканчивается строка кода №25, функция cs2() - уже отработала и по сути должна быть уничтожена в памяти. Но благодаря связи (кода функции d и ее возможности использования в своем коде внешней по отношению к ней переменной - с) переменная - с не удаляется из памяти. Этот процесс называют замыканием. Функции CS2 уже нет (она отработала), а ее переменная - с сохраняется (благодаря замыканию). И к ней имеется доступ через функцию замыкания - d(). Если накосячил с выводами - Поправьте)
Как в том анекдоте. Кому то дано рассказывать анекдоты, а кому то нет. Вот кому то дано объяснять, а кому то нет) СПАСИБО Вам за Ваш труд) Доступно, четко, без лишних слов. ЗАМЕЧАТЕЛЬНО!
Дружище, спасибо тебе, во всем твоём ролике главные слова для понимания замыкания - это "спрятать переменную". Для меня, это было самым главным объяснением. Люблю когда умеют объяснить простыми словами, а темболее, буквально, парой слов👌👍
Круто! Подача матеріалу на висоті. Єдині уроки, де я не засинаю. ДЯКУЮ!!! Навіть собі вже дещо доповнив: ))) function cs2() { let c = 0; return function (flag) { if (flag == '+') c++; if (flag == '-') c--; if (flag == '0') c = 0; return c; } }
Лучшее объяснение. Я как человек из строгой типизации (C#), очень рад, что посмотрел этот видео. Спасибо за пример о "приватном методе", встало в голову железно.
Спасибо огромное! Впервые Вас смотрю, и Ваш канал стал первым, который заставил меня подписаться и получать оповещения о новых видео)) Вы объясняете гениально!
Фрагментами понимал, что где и как работает. Только не мог собрать это в одно понимание. Теперь благодаря вам произошло замыкание в голове всех этих пониманий в одно))
Спасибо. Сколько уже уже учу JS уже даже работаю друном толька сейчас понял что такое замыкание функции. Спасибо. Замыкание функции в Javascript. Function Closures.
Спасибо большое, теперь действительно понятно. Всегда приятно, когда человек действительно старается объяснить доступно, а не просто как попало, лишь бы просмотров побольше набрать.
Ваши уроки слушать одно удовольствие! Вчера читала в учебникe learn js и поняла, когда смотрела ваше видео, что ничего не поняла из прочитанного) лучше сначала смотреть ваши видео, а я потом читать теорию))
Спасибо вам огромное! У вас просто превосходно получается объяснять сложные вещи простыми словами! Это талант! Без вас до меня бы очень долго доходило!
я почемуто создал для себя ассоциацию что замыкание это - замыкание данных между функциями, но тут ..."функцию замыкают на области видимости".. ,четко!.. ВЕЛИКИ ДЗЯКУЙ!.
Хороший урок, все понятно. Захотелось использовать анонимные функции и новый синтаксис, сначала получилось такое: function cs2() { let c = 0; return () => console.log(++c); } let d = cs2(); d(); d(); d(); Потом стал рассуждать, а можно ли как то выкинуть cs2(), ведь к ней почти не обращаемся, пыхтел, пыхтел и все таки с подсказкой справился: let d = (function () { let c = 0; return () => console.log(++c); })(); d(); d(); d(); Понимаю, что код плохо читаемый, но в тоже время, вполне понятный, а самое главное минимум команд. С удовольствием изучил бы еще более короткий вариант.
почему ни кто (доходчиво) не упоминает этот момент 10:30. Этож самое важно. Спасибо! благодаря вашему видео, до конца понял что к чему (по крайней мере саму концепцию)!
Интересный момент, который можно не заметить и, возможно, он улучшит понимание. Для замыкания должна быть передана в переменную уже вызванная функция, т.е. со скобками *let a = func( )* , и после чего, тоже вызвана со скобками *a()* , тем временем как обычная функция при таком синтаксисе бросит ошибку
Спасибо за максимально подробное разъяснение) Но, думаю, можно объяснить ещё короче: "Замыкание - это функция, написанная, как класс с одной функцией" и показать конечную запись. Полагаю, было бы достаточно) По сути, получается просто в d хранится изолированное пространство имён.
Очень все круто! Спасибо!) Но хотелось бы увидеть еще чуть более сложный пример с объяснениями) что бы понимать где еще и как именно я(очень-очень новичек) могу использовать замыкание)
Хочу сказать, что это самое лучшее объяснение замыкания которое я когда либо видео, огромное спасибо!
+!!
Ты уже стал фронт енд разрабом?
Два дня штудировал литературу/видео по этой теме, везде одна каша. Тут за 15 минут все настолько доступно и понятно. Браво!
Боже я в тебя влюбился ты легенда ты очень охуительно обьяснил
Объяснение отличное, только стоит добаваить что присваивание "let d=сs2()" функции переменной необходимо для того чтобы сохранить переменную let c, от уничтожения при каждом новом вызове. Если три раза подряд вызвать cs2(), sc2(), sc2() то получим 1, 1, 1. А так если присвоить код функции переменной то переменная сохранит let c, до следующего вызова.
Отличное дополнение! Для себя сформулирую: созданная переменная - d это по сути объявление функции (той, что внутри cs2) в глобальной области видимости. Функция есть ее код + набор доступных для нее переменных, т.е. доступна переменная - с. JS "видит" эту связь и поэтому, когда заканчивается строка кода №25, функция cs2() - уже отработала и по сути должна быть уничтожена в памяти. Но благодаря связи (кода функции d и ее возможности использования в своем коде внешней по отношению к ней переменной - с) переменная - с не удаляется из памяти. Этот процесс называют замыканием. Функции CS2 уже нет (она отработала), а ее переменная - с сохраняется (благодаря замыканию). И к ней имеется доступ через функцию замыкания - d(). Если накосячил с выводами - Поправьте)
Как в том анекдоте. Кому то дано рассказывать анекдоты, а кому то нет. Вот кому то дано объяснять, а кому то нет) СПАСИБО Вам за Ваш труд) Доступно, четко, без лишних слов. ЗАМЕЧАТЕЛЬНО!
Дружище, спасибо тебе, во всем твоём ролике главные слова для понимания замыкания - это "спрятать переменную". Для меня, это было самым главным объяснением. Люблю когда умеют объяснить простыми словами, а темболее, буквально, парой слов👌👍
Действительно, Алексей, это финт ушами, говоря твоим языком. Наконец-то я набрел на понятное объяснение замыкания!!!
видимо.. Александр ..)
Круто! Подача матеріалу на висоті. Єдині уроки, де я не засинаю. ДЯКУЮ!!!
Навіть собі вже дещо доповнив: )))
function cs2() {
let c = 0;
return function (flag) {
if (flag == '+') c++;
if (flag == '-') c--;
if (flag == '0') c = 0;
return c;
}
}
Лучшее объяснение. Я как человек из строгой типизации (C#), очень рад, что посмотрел этот видео. Спасибо за пример о "приватном методе", встало в голову железно.
геніальне пояснення, найкраще що я бачив в неті, дякую!! так тримати
Спасибо Вам что делаете такой понятный и контент, теперь все стало придельно понятно особенно когда был приложен пример из реальных разработок (2:50)
Это лучший дядька из всех учителей, которые мне встречались!!!
Гениально. Дай Бог здоровья этому человеку
Спасибо огромное! Впервые Вас смотрю, и Ваш канал стал первым, который заставил меня подписаться и получать оповещения о новых видео)) Вы объясняете гениально!
Спасибо за ваши ролики. Прекрасно всё понимаю по вашим примерам.
Спасибо. Очень доступно, особенно если предварительно чуть чуть разобрать лексическое окружение.
Лучшее объяснение замыкания на ютубе!!!!
В 2021 валит Новичок, а не новичка.
А за видео как всегда спасибо. =)
Спасибо, я наконец-то разобралась, что такое замыкание. Все очень-очень подробно для таких тугодумов как я :)
ты уже стала фронт энд разрабом?
Огромное спасибо за такое понятное объяснение!😊
Многие преподаватели знают js, но мало кто может донести свои знания до других. У вас из всех, кого я смотрел, это получается лучше всего
Фрагментами понимал, что где и как работает. Только не мог собрать это в одно понимание. Теперь благодаря вам произошло замыкание в голове всех этих пониманий в одно))
Лучшее объяснение, что такое замыкание в JavaScript! Вне конкуренции!
Александр, ваши объяснения в JS одни из самых доступных и понятных! Спасибо Вам за труд! Очень достойный контент!
Господь всемогущий, я сидел, читал, столько сложных слов.
Это было так доступно и понятно, спасибо огромное!
Самое лучшее объяснение этой темы!!!!
Долгое время не понимала замыкания, но это видео разложило все по полочкам! Спасибо!!
Спасибо. Сколько уже уже учу JS уже даже работаю друном толька сейчас понял что такое замыкание функции. Спасибо. Замыкание функции в Javascript. Function Closures.
Отличное объяснение максимально простыми словами
Спасибо большое, теперь действительно понятно. Всегда приятно, когда человек действительно старается объяснить доступно, а не просто как попало, лишь бы просмотров побольше набрать.
Спасибо большое за доступное объяснение!
Отличный ролик, простейший пример с четко выраженными объяснениями. Благодарю!
Спасибо.
Действительно, как мудрёно написано в документации и как просто вы объяснили этот термин, спасибо большое.
Кроме тебя никто не смог мне это объяснить ) Продолжай в том же духе мужик , ты - лучший )
гуд!
Большое спасибо. До этого читал статью про замыкание, 10 перечитал , ничего не понял. Тут 1 раз посмотрел , все понял.
У вас талант объяснять сложное просто. Спасибо большое, что делитесь!
Спасибо за самое лучшее объяснение !!!
Не плохое объяснение, спасибо.
// пример замыкания функции
function urlGenerator(domain) {
return function(url) {
return `${url}.${domain}`
}
}
const comUrl = urlGenerator("com")
const ruUrl = urlGenerator("ru")
console.log(comUrl("google"));
console.log(comUrl("netflix"));
console.log(ruUrl("google"));
console.log(ruUrl("netflix"));
Спасибо! Все крайне понятно и очень доступно объяснено
спасибо!
Ваши уроки слушать одно удовольствие! Вчера читала в учебникe learn js и поняла, когда смотрела ваше видео, что ничего не поняла из прочитанного) лучше сначала смотреть ваши видео, а я потом читать теорию))
Класс! Доступно и просто изложено!
Спасибо огромное! Реально тут сразу ясно. Пришел добрый умный дядя и сказал всему интернету что из себя представляет замыкание.
Как всегда на высоте! Кратко, понятным языком и по делу.
Отличное объяснение, огромное вам спасибо!
Прочитал две статьи по замыканиям, посмотрел 5 видео уроков, и только Вам удалось пробить мой дубовый мозг) Спасибо!
*Шикарное объяснения автора! Доступно и понятно! Ещё и с объяснениями практического применения. Лайк и подписка*
Спасибо вам огромное! У вас просто превосходно получается объяснять сложные вещи простыми словами! Это талант! Без вас до меня бы очень долго доходило!
Я ПЕРЕСМОТРЕЛ ДО ХУЯ РОЛИКОВ И СПУСТЯ С ТОЛЬКО РОЛИКОВ ПОЯВИЛАСЬ ЛЕГЕНДА КОТОРАЯ ОБЬЯСНИЛА МНЕ ВСЕ НА ПАЛЬЦАХ
Наконец-то поняла замыкание. Спасибо большое, Александр!
я почемуто создал для себя ассоциацию что замыкание это - замыкание данных между функциями, но тут ..."функцию замыкают на области видимости".. ,четко!.. ВЕЛИКИ ДЗЯКУЙ!.
Гениально! дай бог здоровья ))
Спасибо Алекс! Теперь я понял смысл использования замыкания и областей видимости.
Спасибо большое, 2 дня не понимал эту тему, смотрел много видео. Но тут за 18минут все доступно объяснили, благодарю
Доступно. Спасибо. Что просто то гениально.
Лучшее объяснение, что встречал. Спасибо!
Красавчик! Отлично объясняешь!!
Это очень крутое объяснение. Спасибо, я стал знать больше, благодаря вам:)
Хороший урок, все понятно. Захотелось использовать анонимные функции и новый синтаксис, сначала получилось такое:
function cs2() {
let c = 0;
return () => console.log(++c);
}
let d = cs2();
d();
d();
d();
Потом стал рассуждать, а можно ли как то выкинуть cs2(), ведь к ней почти не обращаемся, пыхтел, пыхтел и все таки с подсказкой справился:
let d = (function () {
let c = 0;
return () => console.log(++c);
})();
d();
d();
d();
Понимаю, что код плохо читаемый, но в тоже время, вполне понятный, а самое главное минимум команд. С удовольствием изучил бы еще более короткий вариант.
Спасибо большое - все доступно и понятно! Бывает, вот так смотришь - всё вокруг да около, а толком ничего не ясно!
потрясающее объяснение!
Спасибо! Очень доступно 👍👍👍
Thank you so much. You had explained very simply.
Спасибо за Ваши уроки - они прекрасны и понятны. Очень здорово.
Все просто и понятно, как обычно. Спасибо )
Спасибо, мужчина!!
Хоть и повторял одно и то же, это лучше чем заумные бесполезные объяснения)
Спасибо! Замыкания - очень важная вещь! Раньше не использовал! Теперь буду! 👍👍👍
Просто огонь, 3 дня пытаюсь разобраться с этой темой, сейчас понял что к чему) Спасибо, лайк + подписка!)
Спасибо за доступное обьяснение!
Рад, что помог!
Тот канал, где ставлю лайк на первых секундах, а потом смотрю видео))
Хорошо разжовано, спасибо за старания, было очень интересно!
Спасибо за отличный плейлист с крутым объяснением!
Спасибо, всё очень понятно. Автор супер крутой.
Идеально объяснили, спасибо)
Вы лучший, спасибо за ваше время!
Спасибо за урок!
Дуже (дуже (доступно пояснив));
console.log('Дякую!');
Большое спасибо, вы прекрасно объясняете!
Очень круто рассказываете! Понятно, доступно и интересно слушать.
почему ни кто (доходчиво) не упоминает этот момент 10:30. Этож самое важно.
Спасибо! благодаря вашему видео, до конца понял что к чему (по крайней мере саму концепцию)!
Хорошое, понятное объяснения замыканий. Спасибо.
cs 2 )))))) ....отличная аналогия. Объяснили хорошо и доступно, сразу понял на примере, спасибо еще раз !!!
очень хорошо объясняете. Спасибо за работу!
уже разобрался, но если бы увидел это видео раньше, то процесс понимания был бы гораздо легче и быстрее)
Вот вовремя нашел, спасибо!
True JS Превосходный плейлист!
Спасибо! Реально круто поясняешь
respect))) spasiba balshoye !!!
Интересный момент, который можно не заметить и, возможно, он улучшит понимание. Для замыкания должна быть передана в переменную уже вызванная функция, т.е. со скобками *let a = func( )* , и после чего, тоже вызвана со скобками *a()* , тем временем как обычная функция при таком синтаксисе бросит ошибку
Просто и гениально!!!
Спасибо за максимально подробное разъяснение)
Но, думаю, можно объяснить ещё короче: "Замыкание - это функция, написанная, как класс с одной функцией" и показать конечную запись. Полагаю, было бы достаточно)
По сути, получается просто в d хранится изолированное пространство имён.
Ну наконец разобрался, спасибо !!!
Хех, уже год регулярно использую замыкания, не зная что они называются замыканиями)
Вчера увидел этот видос, сегодня уже применяю по полной)
Объяснение на 10-ку. Спасибо!
Вот это объяснение! Отец!
Всё отлично объясняете , я всё понял. Спасибо)
Очень все круто! Спасибо!)
Но хотелось бы увидеть еще чуть более сложный пример с объяснениями) что бы понимать где еще и как именно я(очень-очень новичек) могу использовать замыкание)
вы преподаватель от бога) правда
Отличное объяснение!
Классно обьяснили,спасибо !