Замыкания, просто и с примерами. Функции JavaScript
💎 Курс Функции в JavaScript: itgid.info/course/function-2021
⏰ Курс JavaScript 2.0: itgid.info/course/javascript-2
👇 Разверни для полной информации
Курс Методы массивов: itgid.info/course/arraymethod
Изучаем замыкания в JavaScript. На простых примерах и простым языком. Зачем нужно, как создавать замыкания, как применять
00:00 вступление
01:40 функция и внешние переменные
03:10 функция и внутренние переменные
08:10 внешние переменные - необходимы
10:40 замыкаем данные и функции
15:10 тестируем замыкания
19:20 передаем аргументы в замыкания
21:50 замыкания на примере задачи - попрошайки
26:35 замыкания для файлов js
Пікірлер: 153
Я купил, потихоньку прохожу! И я в восторге! Жду курс по ТайпСкрипт! залайкайте чтоб Александр увидел!
@magbear3205
2 жыл бұрын
он все лекции выставил. Cмысл покупать?
@annashirinskaya7400
2 жыл бұрын
@@magbear3205 У платных курсов есть еще доп. видео, которые объясняют нюансы + ДЗ+ их поверка и возможность задать вопросы, что очень ценно и помогает двигаться вперед
@eclipseweb1419
Жыл бұрын
Спустя год, можете поделиться результатом?
@pung5859
5 ай бұрын
стоит покупать???
@pung5859
5 ай бұрын
@@annashirinskaya7400 стоит покупать?
Лучшее объяснение JS на ютубе!!! Просто в восторге от такой подачи! Я теперь фанат Александра 🙌 и не просто понятная, но и интересная подача, слушать приятно! Красавчик одним словом
единственное объяснение, которое настолько разжевано, что я наконец поняла. Спасибо!!
Пример идеально подобран. До этого все рассказали что замыкание это функция возвращающая функцию, и все, непонятен был зачем он нужен, когда нужен.
Реально крутой видос! Наблюдал такой подход c IIFE в своей компании на легаси проектах и никогда не пытался вникнуть почему это реализовано именно так 🙂Теперь всё стало понятно. Наконец-то какие-то адекватные и наглядные примеры замыканий на практике нашел. Спасибо! 😉
В конце наверное лучший пример для демонстрации важности замыканий.
Читаю книгу по js и смотрю ваши уроки, спасибо вам за разжевывание такой «легкой темы», а то другие горе учителя из за того что думают что это очень просто уделяют очень мало времени данной теме из за этого я не как не мог понять, зачем вообще нужно замыкание, если можно обойтись простой функцией
Пересмотрел всех гуру по Js на ютубе. Это лучшее объяснение из всех
Спасибо, что делитесь с нами.
Идут года, а у вас материал все также базовый, но база как всегда хорошо разжевана и подана.
Спасибо за такие толковые уроки! Ждем продолжение. Например по промисам и другой асинхронщине. Крепкого здоровья и всяческих успехов!
Ох как хорошо, что есть такой канал, очень понятно все рассказали, класс))
@itsemil2722
Жыл бұрын
Прикольный ник
отличный курс. обязательно куплю. просто отличные видео-уроки! Супер! Спасибо!
Александр, благодарю, все понятно и просто. А главное душевно! Пересмотрел много других объяснений, ваше - самое доступное. Подписка / лайк / огромное спасибо!
Шикарное объяснение, как всегда! Благодарю за урок!
Отличное объяснение `замыканий`, большое спасибо вам за урок!💥
саме найкраще пояснення, яке я бачив на даний момент в інтернеті!!! молодець. я навіть задумався над тим, щоб придбати курс! і це згодом буде)
Отличный урок! Идельно все понятно, примеры хорошие, подача живая!
Лучшего обьяснения в интернетах не встречал! Спасибо большое!
Удивительно, но как же по-разному можно преподносить информацию. Смотрела и читала про замыкание в разных источниках - результат шевеление волос на голове, а это видео как озарение. Очередное спасибо. Это объяснение самое толковое.
Очень доходчиво объясняете, классные примеры, крайне полезное видео! Спасибо, Александр!
Больше спасибо🌼Все уроки посмотрела
Вот это очень толковое и понятное объяснение! Другие программисты только запутывают наоборот тебя = ( Класс. Талант!
Спасибо большое, Александр! Вы шикарно объяснили эту тему. Из нечто непонятного замыкание превратилось в структурированную и доступную информацию и рабочий полезный инструмент 👍
Алексей, спасио вам большое, читаю learnJS, потом смотрю ваши уроки, если что то не понимаю. Очень понятно объясняете. В будущем куплю ваш курс. Вы, как фрилансер по жизни, только от мира js.
Объяснил все просто и по-красоте, спасибо.
Александр, спасибо вам за ваш труд. Потихоньку от страданий над JS перехожу к кайфованию от него. И во многом благодаря вашим урокам. Ребята, рекомендую. Этот ролик вообще можно пересматривать.
щиро дякую за чітке та доступне пояснення))
28:22 "Это мое право и поэтому я напишу" - браво!)))
Очень понятное и приятное обьяснение,спасибо за ваш труд,вы помогаете людям
Для меня - самый лучший разбор темы, спасибо!
Олександр, я Ваш палкий фанат! Завдяки Вашим відео JS став для мене зрозумілішим в сотні разів. Ви вмієте складні конструкції передавати простими словами! Молю, Вас зробіть курс по Ангуляру! Я впевнений, я такий не один!
Дякую за такий зрозумілий і доступний курс!
Огромное спасибо Вам за этот курс))
Тот случай, когда понял замыкания с первого раза! Огромное спасибо автору!
Супер очень интерестно было с вами решать задачки)))
Спасибо, ну очень понятное объяснение сути вопроса!
огромная благодарность за ваш труд!)
Спасибо за курс!
Спасибо за ролик, все просто и понятно
Спасибо огромное за такое понятное объяснение🎉
Cпасибо, очень наглядно и понятно!)
This lesson is really useful ! Thanks a lot!
лучшее объяснение! большое Вам спасибо!
Спасибо, очень доходчиво!!!!!
Спасибо! Разобрался с этой темой! Правда дважды смотрел - но все равно смысл понял и это надолго!
Спасибо большое Александр!!!
В момент создания обработчик события запоминает значение переменной buttonName в своей области видимости, тем самым это яркий пример замыкания в JS function createButtonHandler(buttonName) { return function() { console.log(`Button "${buttonName}" was clicked!`); } } let button1 = createButtonHandler("Button 1"); let button2 = createButtonHandler("Button 2"); button1(); button2(); В Python очень похожий способ и я его перенес именно оттуда def create_button_handler(button_name): def button_handler(): print(f'Button "{button_name}" was clicked!') return button_handler button1 = create_button_handler("Button 1") button2 = create_button_handler("Button 2") button1() button2() ====================== Button "Button 1" was clicked! Button "Button 2" was clicked!
Самое лучшее обьяснение 👍👍😘
Очень классное и понятное объяснение
просто спасибо, просто помог разобраться)
Чувак, у тебя ДАР. Ты очень крут, жаль сайт не работает твой.
Функции - это мой третий курс у Вячеслава и он самый крутой. Другие два (JS2.0 и методы массивов) тоже очень классные, реально прокачивают и набивают руку. Да и без них к функциям нечего и подходить, если новичок. Но Функции реально "ломали" голову и приходилось поднапрячься, что понять и выполнить задания. И именно в них я оценил преимущество телеграмм -чата. Вячеслав спасибо, действительно очень суперский курс. А рекурсия - это бомба!))
@digitalturkistan1857
2 жыл бұрын
Он Александр Лущенко
Спасибо за объяснение! все понял
Идеально. Спасибо 先生
это лучшее обьяснение которое я только смог найти
Хорошо объесняете !!
Проходил курсы, хорошие воспоминания!
Александр огромное спасибо за понятное объяснение! Жаль что нет возможности выйти на Ваше ресурс для того чтобы выбрать необходимые курсы и купить их(((
смотрю без остановки твои видосы и умнее на глазах. Жаль что не знала тебя год назад
Хорошо объяснили!
Spasibo za kurs
Блин, спасибо! Теперь реально стало всё понятно и просто
Spasibo ochen poniatno i interesno
Максимально четко!
Лучшее объяснение которое я встречал 😅
Великолепная подача без всякой стандартной пурги "из собесов". Однозначно вподобайка!
Спасибо! просто и понятно
спасибо. очень понятно
Отличное видео!
Искал видео по замыканиям (из другого языка). Очень доходчиво, прямо настоящий преподаватель!
Огромное спасибо!
Спасибо, допёр )
Александр, добрый день! Каким Вы пользуетесь антивирусом и есть ли необходимость в нем вообще? Стоит ли его ставить для удаленной работы?
Это единственное понятное объяснение замыканий которое я видел!
Блин, Сань, поставил бы100 лайков - не могу. Сколько стоят платные курсы по JS?
Сколько ни смотрел уроков, сколько статей ни читал, а Александр всегда как-то раз-раз и по полочкам раскладывает лучше всех. Большое спасибо!
лучшее объяснение
просто лучший!
Ура, я одним видео закрыл понимание и замыкания и рекурсии и хранения переменных в памяти.
спасибо!
Так вот как стейты в реакте работают)!
Напомню, про азы 2д игры;) Нет, не отстану)))
@maximshevchenko6202
2 жыл бұрын
а что там? типо мини движок написать?
@logius84
2 жыл бұрын
@@maximshevchenko6202 простые примеры , там как карту рандомную сделать, как дерево рубить... Там как менюшки предметов делать....
@logius84
2 жыл бұрын
@@maximshevchenko6202 П.С. на курсы не пойду, денях нету, и не пустят, под колючей прволкой, по миным полям желания ползти нету)))
Молодец, преподавать это твоё
36:00 Immediately Invoked Function Expression
по это лучшее объяснение...как купить ваш курс?
Снимите пожалуйста видео о Итераторах в JavaScript
Так работают функциональные компоненты в реакте - инкаспулированые объекты.
Крутой урок, вот только нету объяснения что там дает return и почему функция в конце присваивается переменной, что это дает. Без этого замыкания очень легкая тема, научиться их использовать легко, а вот понять как они устроены сложнее. И вот я нигде не могу найти этой инфы, возможно вы когда-нибудь запишите дополнение к этому видео с объяснением принципа действия.
@electrostryker6332
2 жыл бұрын
LearnJS, на этом сайте подробно и доступным языком написано про сам механизм работы замыканий
Господи Исусе, после посмотренных 6 видео о замыканиях, я только у Вас понял его суть и логику... Сердечно вам благодарен!!
Что лучше Немедленно вызываемые функции (IIFE) или блок кода {} для решения проблемы из последней части видео?
@Leon-rv2zm
2 жыл бұрын
Аналогичный вопрос, почему бы просто не обернуть блок кода в фигурные скобки? (ведь в данном случае мы не объявляем переменные через var)
@luxxxfilm
2 жыл бұрын
Детский сад если честно)
@diamaxel
2 жыл бұрын
область видимости не замкнется если функция не будет вызвана
Последний пример. Если мы выполнили функцию, значит после её выполнения, все переменные внутри функции должны быть стерты из памяти. Раз мы можем их использовать при нажатии на кнопки, значит функция не выполнена, а запущена и все её переменные продолжают храниться в памяти. Как завершить эти функции, чтобы очистить память от переменных, если с какого-то момента нам они будут не нужны?
@maksimtroshkov173
9 ай бұрын
Достаточно просто в нужный момент очистить значение результирующей переменной, которой Вы присваивали вызов внешней функции (step1 = null). На learnjs про это рассказывается.
То есть вы хотите сказать, что человек, который так доходчиво объясняет может иметь хейтеров?) Не поверю.
36:49 стоит ли такой формат использовать в своих проектах, хотелось бы услышать авторитетное мнение автора 👍)
@maksimtroshkov173
9 ай бұрын
Конечно стоит. У нас в компании такой подход используется для случаев, когда необходимо при загрузке страницы сразу же выполнить некий код, который находится в отдельном подключаемом скрипте - это может быть какой-то виджет, компонент и т.п. Сам раньше не задумывался как это работает и для чего используется. Благодаря этому видео всё стало ясно 🙂
так работает реакт
Подача материала на 5+. (Автор молодец.) НО периодические сглатывания и чмоканье просто УНИЧТОЖАЮТ!!!!!
Область можно и так создавать: { ' use strict' ...... Code } В каждом файле, и нечего не будет пересекаться
А подскажите пожалуйста, в последнем примере не проще было бы просто в блок кода { ... } Объединить, чем использовать IIFE. Воде разницы нету, или я что то не понял -_- { const btns = document.querySelectorAll('.block'); let p = 10; btns.forEach((el) => { el.onclick = () => { p += 1; console.log('result variable p: ' + p); } }) } const btns = 'Fuckin srsly!'; // Спокойно дает объявить ибо нету такой в глобале. console.log(btns);
@maksimtroshkov173
9 ай бұрын
Думаю это старый способ, который использовался в es5, когда для объявления переменных использовался var (т.к. его область видимости ограничивается только функцией, но не блоком). К примеру, у нас в компании есть легаси проект на es5, и там использовался именно такой подход с IIFE.
Дякую
все четко но я не понимаю почему нужно присваивать вызов фУНКЦИИ В ПЕРЕМЕННУЮ объясните кто знает очень нужно