Что такое ЗАМЫКАНИЯ в JavaScript? Как они работают? Разберём на примерах

  Рет қаралды 3,969

Эльбрус Буткемп: школа программирования

Эльбрус Буткемп: школа программирования

Күн бұрын

Пікірлер: 22
@MyNameIsEd2d2
@MyNameIsEd2d2 Жыл бұрын
Юр спасибо огромное! Два дня смотрел/читал всякое и не мог допереть что такое замыкание и где оно применяется, теперь картинка сложилась
@mary5betheone663
@mary5betheone663 5 ай бұрын
Непростая тема, но очень понравилось объяснение в видео! Всё четко и понятно! Спасибо!
@rosen7962
@rosen7962 4 ай бұрын
хороший урок, спасибо автору!
@EkaterinaYulina
@EkaterinaYulina Жыл бұрын
Автор очень доходчиво рассказывает! Рекомендую
@MsSapfy
@MsSapfy Жыл бұрын
Спасибо, поняла с первого раза 👌
@мышелов-т8й
@мышелов-т8й Жыл бұрын
Объективно адекватно
@РоманЯгжин-щ4к
@РоманЯгжин-щ4к 11 ай бұрын
То есть основная фишка замыкания в том, что оно сохраняет значение предыдущих вызовов функции? Иными словами переменные лексического окружения (scope) сохраняются и соответственно эти сохранённые значения в переменных используются при следующих вызовах функции ?
@ElbrusBootcamp
@ElbrusBootcamp 11 ай бұрын
Да, всё верно. Основное применение замыкания это сохранение доступа к переменным из внешней функции, даже после того, как она завершила свою работу. Это позволяет функции использовать и изменять значения этих переменных, что делает их очень гибкими. В рабочих примерах замыкания могут быть полезными, когда нужно сохранить состояние или создать приватные переменные в JavaScript.
@EvilGazz
@EvilGazz Жыл бұрын
Отличный пример👌
@flightcommunity.kingsofthe6606
@flightcommunity.kingsofthe6606 Жыл бұрын
Отличный урок! Давно слышал про замыкания, но никак не мог понять, после видео стало ясно) Подскажите где можно попрактиковаться на замыкания?
@СергейТрухачев-о7л
@СергейТрухачев-о7л Жыл бұрын
ТОП!!
@Zikyzi
@Zikyzi Жыл бұрын
Спасибо!
@ЕвгенияФедорова-ч1р
@ЕвгенияФедорова-ч1р Жыл бұрын
Огонь!
@darinka6024
@darinka6024 Жыл бұрын
Юра 🔥🔥🔥
@novichok3417
@novichok3417 Жыл бұрын
Юрий спасибо за попытку объяснить тему замыкания в js . На мой взгляд не очень удачная. 2-е в вашем видео примерно с 20-21минуты вы рассказываете тему(в другом видео, другой блогер назвал её function factory) и там он сказал,что передовать два аргумента в фунцию почему-то не очень хорошо. Для краткости закончилось все прередачей двух аргументов в отдельных круглых скобках (как у вас) . Не могли бы вы рассказать тему function factory и ещё тему геттеров и сеттеров и нормально объяснить для чего они нужны.
@ElbrusBootcamp
@ElbrusBootcamp Жыл бұрын
Вы ссылаетесь к тому, что понятие function factory чем-то похоже на каррирование. В каррировании мы стараемся уйти от нескольких аргументов в пользу одного, а в function factory мы больше концентрируемся на расширении функционала или конфигураций готовой функции. В видео есть пример с функцией someFunction5()() , его можно отнести к обоим этим понятиям. Тем не менее, обе эти концепции работают на замыкании, и придуманы для демонстрации и объяснений начинающим в JavaScript.
@АлексейЧерняев-б2н
@АлексейЧерняев-б2н Жыл бұрын
❤❤❤
@Alexander_Shulga_
@Alexander_Shulga_ Жыл бұрын
Юра, Вы 35 минут силились объяснить, что такое замыкание, но похоже Вы и сами не до конца разобрались в этой теме. Замыкание это всего лишь вот это: { var1; get_var1{ return var1; } set_var1{ var1 = 5; } } Внешние фигурные скобки, внутри которых объявлены две подпрограммы, являются обозначением контекста, внутри которого есть данные и эти две подпрограммы. В роли контекста может быть внешняя подпрограмма или какой-то блок операторов. Замыкание - это когда доступ к переменной var1 извне блока кода, в котором она объявлена, отсутствует, т.е. нельзя воспользоваться так: имя-блока-кода.var1 = 4; Но подпрограммы, которые внутри этого блока были объявлены, имеют к ней доступ в силу того, что при замыкании подпрограммы имеют доступ к среде, в которой они были объявлены. Т.е. можно написать: set_var1(); w = gen_var1(); То, что эти две функции имеют доступ к переменной var1 - это и есть замыкание, т.е. доступ функции к переменной той среды, в котором эта функция была определена. При этом, если потом написать так set_var1(); var1 = 10; w = gen_var1(); то w все равно будет содержать 5, потому что функции работают с var1 из среды, в которой они были определены, а не с той переменной var1, которую мы ввели потом.
@ElbrusBootcamp
@ElbrusBootcamp Жыл бұрын
вы действительно хорошо пояснили понятие замыкания, с учётом примера с псевдокодом. Ваш пример строится на геттере и сеттере, что вполне имеет место быть и может применяться. Тем не менее замыкание не заканчивается только на get-set, есть много разных способов демонстраций. Основная задача видео показать пример постепенного уложения функции с учётом замыкания для тех кто впервые сталкивается с этим инструментом. Спасибо за ваш комментарий!
@Alexander_Shulga_
@Alexander_Shulga_ Жыл бұрын
👍@@ElbrusBootcamp
@Russia-e2o
@Russia-e2o Жыл бұрын
Это же видео для уже работающих програмистов знающий это язык. Я пробовал изучать пайтон, со второго просмотра чуть-чуть понял. Человек с 0 знаниями не понимает даже что это за программа. Это урок не для новичков!
@ElbrusBootcamp
@ElbrusBootcamp Жыл бұрын
Здравствуйте! Тема замыканий важна для понимания, когда базовые темы уже разобраны. Также эта тема часто встречается на собеседованиях, и нашей задачей было помочь с подробным разбором. Расскажите, какие темы вам было бы интересно увидеть в будущем на нашем канале? Вы уже начали знакомство с синтаксисом JS?
Замыкания в JavaScript с примерами. Фундаментальный JavaScript
22:39
ЧТО ТАКОЕ НЕЙРОСЕТИ и КАК ОНИ РАБОТАЮТ? Просто и доступно о нейронных сетях!
13:34
Эльбрус Буткемп: школа программирования
Рет қаралды 348
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 68 МЛН
HELP!!!
00:46
Natan por Aí
Рет қаралды 54 МЛН
Что такое и как работают замыкания (closures) в JavaScript?
13:55
СОВЕТЫ НОВИЧКАМ, с чего начать учить Python. Делюсь своим опытом!
11:04
Эльбрус Буткемп: школа программирования
Рет қаралды 716
Собеседование Data Science Junior: Вопросы и задания | Эльбрус Буткемп
48:51
Эльбрус Буткемп: школа программирования
Рет қаралды 1,9 М.
Замыкания, просто и с примерами. Функции JavaScript
39:25
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 45 М.
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 68 МЛН