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