Замыкания, просто и с примерами. Функции 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

  • @agrbear
    @agrbear2 жыл бұрын

    Я купил, потихоньку прохожу! И я в восторге! Жду курс по ТайпСкрипт! залайкайте чтоб Александр увидел!

  • @magbear3205

    @magbear3205

    2 жыл бұрын

    он все лекции выставил. Cмысл покупать?

  • @annashirinskaya7400

    @annashirinskaya7400

    2 жыл бұрын

    @@magbear3205 У платных курсов есть еще доп. видео, которые объясняют нюансы + ДЗ+ их поверка и возможность задать вопросы, что очень ценно и помогает двигаться вперед

  • @eclipseweb1419

    @eclipseweb1419

    Жыл бұрын

    Спустя год, можете поделиться результатом?

  • @pung5859

    @pung5859

    5 ай бұрын

    стоит покупать???

  • @pung5859

    @pung5859

    5 ай бұрын

    @@annashirinskaya7400 стоит покупать?

  • @anastasiiagor6728
    @anastasiiagor6728 Жыл бұрын

    Лучшее объяснение JS на ютубе!!! Просто в восторге от такой подачи! Я теперь фанат Александра 🙌 и не просто понятная, но и интересная подача, слушать приятно! Красавчик одним словом

  • @mrhawking
    @mrhawking Жыл бұрын

    единственное объяснение, которое настолько разжевано, что я наконец поняла. Спасибо!!

  • @forwardspeed983
    @forwardspeed9832 жыл бұрын

    Пример идеально подобран. До этого все рассказали что замыкание это функция возвращающая функцию, и все, непонятен был зачем он нужен, когда нужен.

  • @maksimtroshkov173
    @maksimtroshkov1739 ай бұрын

    Реально крутой видос! Наблюдал такой подход c IIFE в своей компании на легаси проектах и никогда не пытался вникнуть почему это реализовано именно так 🙂Теперь всё стало понятно. Наконец-то какие-то адекватные и наглядные примеры замыканий на практике нашел. Спасибо! 😉

  • @user-cz9uz1tr3r
    @user-cz9uz1tr3r3 жыл бұрын

    В конце наверное лучший пример для демонстрации важности замыканий.

  • @lol_hp
    @lol_hp Жыл бұрын

    Читаю книгу по js и смотрю ваши уроки, спасибо вам за разжевывание такой «легкой темы», а то другие горе учителя из за того что думают что это очень просто уделяют очень мало времени данной теме из за этого я не как не мог понять, зачем вообще нужно замыкание, если можно обойтись простой функцией

  • @AntonioBenderas
    @AntonioBenderas Жыл бұрын

    Пересмотрел всех гуру по Js на ютубе. Это лучшее объяснение из всех

  • @aleksandrfedotov9620
    @aleksandrfedotov96203 жыл бұрын

    Спасибо, что делитесь с нами.

  • @maximshevchenko6202
    @maximshevchenko62022 жыл бұрын

    Идут года, а у вас материал все также базовый, но база как всегда хорошо разжевана и подана.

  • @alexanderalexander7722
    @alexanderalexander77222 жыл бұрын

    Спасибо за такие толковые уроки! Ждем продолжение. Например по промисам и другой асинхронщине. Крепкого здоровья и всяческих успехов!

  • @alenalel1267
    @alenalel12672 жыл бұрын

    Ох как хорошо, что есть такой канал, очень понятно все рассказали, класс))

  • @itsemil2722

    @itsemil2722

    Жыл бұрын

    Прикольный ник

  • @ibragimtseboev7848
    @ibragimtseboev78482 жыл бұрын

    отличный курс. обязательно куплю. просто отличные видео-уроки! Супер! Спасибо!

  • @user-iv6hg2pc8l
    @user-iv6hg2pc8l Жыл бұрын

    Александр, благодарю, все понятно и просто. А главное душевно! Пересмотрел много других объяснений, ваше - самое доступное. Подписка / лайк / огромное спасибо!

  • @alexbaboy7292
    @alexbaboy72922 жыл бұрын

    Шикарное объяснение, как всегда! Благодарю за урок!

  • @rusikosi1
    @rusikosi1 Жыл бұрын

    Отличное объяснение `замыканий`, большое спасибо вам за урок!💥

  • @user-fd1np4pt7y
    @user-fd1np4pt7y Жыл бұрын

    саме найкраще пояснення, яке я бачив на даний момент в інтернеті!!! молодець. я навіть задумався над тим, щоб придбати курс! і це згодом буде)

  • @WorldCitizen1984
    @WorldCitizen1984 Жыл бұрын

    Отличный урок! Идельно все понятно, примеры хорошие, подача живая!

  • @romasadovnik3456
    @romasadovnik3456 Жыл бұрын

    Лучшего обьяснения в интернетах не встречал! Спасибо большое!

  • @user-qz8kj3tr8i
    @user-qz8kj3tr8i Жыл бұрын

    Удивительно, но как же по-разному можно преподносить информацию. Смотрела и читала про замыкание в разных источниках - результат шевеление волос на голове, а это видео как озарение. Очередное спасибо. Это объяснение самое толковое.

  • @user-gc7kz8du8x
    @user-gc7kz8du8x11 ай бұрын

    Очень доходчиво объясняете, классные примеры, крайне полезное видео! Спасибо, Александр!

  • @tinalee8686
    @tinalee86862 жыл бұрын

    Больше спасибо🌼Все уроки посмотрела

  • @gvitoss
    @gvitoss Жыл бұрын

    Вот это очень толковое и понятное объяснение! Другие программисты только запутывают наоборот тебя = ( Класс. Талант!

  • @user-fp8fk5qp7x
    @user-fp8fk5qp7x9 ай бұрын

    Спасибо большое, Александр! Вы шикарно объяснили эту тему. Из нечто непонятного замыкание превратилось в структурированную и доступную информацию и рабочий полезный инструмент 👍

  • @user-id4rd4wj6t
    @user-id4rd4wj6t2 жыл бұрын

    Алексей, спасио вам большое, читаю learnJS, потом смотрю ваши уроки, если что то не понимаю. Очень понятно объясняете. В будущем куплю ваш курс. Вы, как фрилансер по жизни, только от мира js.

  • @lTanTea
    @lTanTea2 жыл бұрын

    Объяснил все просто и по-красоте, спасибо.

  • @nadiapekarskaya9776
    @nadiapekarskaya97764 ай бұрын

    Александр, спасибо вам за ваш труд. Потихоньку от страданий над JS перехожу к кайфованию от него. И во многом благодаря вашим урокам. Ребята, рекомендую. Этот ролик вообще можно пересматривать.

  • @daredevil_37
    @daredevil_37 Жыл бұрын

    щиро дякую за чітке та доступне пояснення))

  • @geroin6294
    @geroin62942 жыл бұрын

    28:22 "Это мое право и поэтому я напишу" - браво!)))

  • @user-bn5xe8nl3i
    @user-bn5xe8nl3i6 ай бұрын

    Очень понятное и приятное обьяснение,спасибо за ваш труд,вы помогаете людям

  • @user-ke7yd2qe5v
    @user-ke7yd2qe5v Жыл бұрын

    Для меня - самый лучший разбор темы, спасибо!

  • @MrVIPKent
    @MrVIPKent Жыл бұрын

    Олександр, я Ваш палкий фанат! Завдяки Вашим відео JS став для мене зрозумілішим в сотні разів. Ви вмієте складні конструкції передавати простими словами! Молю, Вас зробіть курс по Ангуляру! Я впевнений, я такий не один!

  • @oksanamatviienko5339
    @oksanamatviienko5339 Жыл бұрын

    Дякую за такий зрозумілий і доступний курс!

  • @imaks1076
    @imaks10762 жыл бұрын

    Огромное спасибо Вам за этот курс))

  • @user-zc9kd2ci4q
    @user-zc9kd2ci4q2 жыл бұрын

    Тот случай, когда понял замыкания с первого раза! Огромное спасибо автору!

  • @bunnybugs6623
    @bunnybugs66232 жыл бұрын

    Супер очень интерестно было с вами решать задачки)))

  • @user-hr3zp4jj5w
    @user-hr3zp4jj5w2 жыл бұрын

    Спасибо, ну очень понятное объяснение сути вопроса!

  • @phd-oldremain
    @phd-oldremain2 жыл бұрын

    огромная благодарность за ваш труд!)

  • @maksymdavydchuk
    @maksymdavydchuk2 жыл бұрын

    Спасибо за курс!

  • @RusovMikhail
    @RusovMikhail2 жыл бұрын

    Спасибо за ролик, все просто и понятно

  • @Pavelius
    @Pavelius6 ай бұрын

    Спасибо огромное за такое понятное объяснение🎉

  • @aserezhnikov
    @aserezhnikov8 ай бұрын

    Cпасибо, очень наглядно и понятно!)

  • @colodatwin3102
    @colodatwin31028 ай бұрын

    This lesson is really useful ! Thanks a lot!

  • @matvienko_p
    @matvienko_p Жыл бұрын

    лучшее объяснение! большое Вам спасибо!

  • @wasilijivanich7750
    @wasilijivanich77502 жыл бұрын

    Спасибо, очень доходчиво!!!!!

  • @aleksandr2236
    @aleksandr2236 Жыл бұрын

    Спасибо! Разобрался с этой темой! Правда дважды смотрел - но все равно смысл понял и это надолго!

  • @romanchernyshov2632
    @romanchernyshov2632 Жыл бұрын

    Спасибо большое Александр!!!

  • @PythonDevelopment
    @PythonDevelopment11 ай бұрын

    В момент создания обработчик события запоминает значение переменной 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!

  • @forwardspeed983
    @forwardspeed9832 жыл бұрын

    Самое лучшее обьяснение 👍👍😘

  • @Alex__88
    @Alex__889 ай бұрын

    Очень классное и понятное объяснение

  • @screppykoko951
    @screppykoko9512 жыл бұрын

    просто спасибо, просто помог разобраться)

  • @livingston9750
    @livingston97502 жыл бұрын

    Чувак, у тебя ДАР. Ты очень крут, жаль сайт не работает твой.

  • @user-id9ui2en1y
    @user-id9ui2en1y2 жыл бұрын

    Функции - это мой третий курс у Вячеслава и он самый крутой. Другие два (JS2.0 и методы массивов) тоже очень классные, реально прокачивают и набивают руку. Да и без них к функциям нечего и подходить, если новичок. Но Функции реально "ломали" голову и приходилось поднапрячься, что понять и выполнить задания. И именно в них я оценил преимущество телеграмм -чата. Вячеслав спасибо, действительно очень суперский курс. А рекурсия - это бомба!))

  • @digitalturkistan1857

    @digitalturkistan1857

    2 жыл бұрын

    Он Александр Лущенко

  • @user-cg3zj8if4m
    @user-cg3zj8if4m Жыл бұрын

    Спасибо за объяснение! все понял

  • @yarik83men51
    @yarik83men512 жыл бұрын

    Идеально. Спасибо 先生

  • @oleksandrkotovskyi4203
    @oleksandrkotovskyi42036 ай бұрын

    это лучшее обьяснение которое я только смог найти

  • @user-fr9fl3ds5t
    @user-fr9fl3ds5t11 ай бұрын

    Хорошо объесняете !!

  • @Alex-rs1tt
    @Alex-rs1tt Жыл бұрын

    Проходил курсы, хорошие воспоминания!

  • @azatazamatov8820
    @azatazamatov88202 жыл бұрын

    Александр огромное спасибо за понятное объяснение! Жаль что нет возможности выйти на Ваше ресурс для того чтобы выбрать необходимые курсы и купить их(((

  • @krup1783
    @krup1783 Жыл бұрын

    смотрю без остановки твои видосы и умнее на глазах. Жаль что не знала тебя год назад

  • @rslazamat
    @rslazamat2 жыл бұрын

    Хорошо объяснили!

  • @Mirrasim
    @Mirrasim Жыл бұрын

    Spasibo za kurs

  • @krepkovmeste
    @krepkovmeste Жыл бұрын

    Блин, спасибо! Теперь реально стало всё понятно и просто

  • @aleksandrgaluza7333
    @aleksandrgaluza73332 жыл бұрын

    Spasibo ochen poniatno i interesno

  • @user-xu2ro3fg2o
    @user-xu2ro3fg2o2 жыл бұрын

    Максимально четко!

  • @vadimkunitskyi3699
    @vadimkunitskyi3699 Жыл бұрын

    Лучшее объяснение которое я встречал 😅

  • @brutix80
    @brutix80 Жыл бұрын

    Великолепная подача без всякой стандартной пурги "из собесов". Однозначно вподобайка!

  • @user-vs1it4no2v
    @user-vs1it4no2v Жыл бұрын

    Спасибо! просто и понятно

  • @zohidmustafoyev2448
    @zohidmustafoyev2448 Жыл бұрын

    спасибо. очень понятно

  • @Indy_660
    @Indy_660 Жыл бұрын

    Отличное видео!

  • @azraeldadashev4424
    @azraeldadashev44242 жыл бұрын

    Искал видео по замыканиям (из другого языка). Очень доходчиво, прямо настоящий преподаватель!

  • @vitalygaraev8093
    @vitalygaraev80938 күн бұрын

    Огромное спасибо!

  • @Egoriy1977
    @Egoriy19772 жыл бұрын

    Спасибо, допёр )

  • @Kreminb
    @Kreminb2 жыл бұрын

    Александр, добрый день! Каким Вы пользуетесь антивирусом и есть ли необходимость в нем вообще? Стоит ли его ставить для удаленной работы?

  • @origamist757
    @origamist7572 жыл бұрын

    Это единственное понятное объяснение замыканий которое я видел!

  • @managerinfo3358
    @managerinfo33582 жыл бұрын

    Блин, Сань, поставил бы100 лайков - не могу. Сколько стоят платные курсы по JS?

  • @vanyavedro9857
    @vanyavedro98572 жыл бұрын

    Сколько ни смотрел уроков, сколько статей ни читал, а Александр всегда как-то раз-раз и по полочкам раскладывает лучше всех. Большое спасибо!

  • @aleksanderr4673
    @aleksanderr4673 Жыл бұрын

    лучшее объяснение

  • @sekirogenshiro2210
    @sekirogenshiro22102 жыл бұрын

    просто лучший!

  • @WoTdrugsANDrocknroll
    @WoTdrugsANDrocknroll3 ай бұрын

    Ура, я одним видео закрыл понимание и замыкания и рекурсии и хранения переменных в памяти.

  • @YusupOzdoyev
    @YusupOzdoyev2 жыл бұрын

    спасибо!

  • @user-ij5vu4jn5w
    @user-ij5vu4jn5w Жыл бұрын

    Так вот как стейты в реакте работают)!

  • @logius84
    @logius843 жыл бұрын

    Напомню, про азы 2д игры;) Нет, не отстану)))

  • @maximshevchenko6202

    @maximshevchenko6202

    2 жыл бұрын

    а что там? типо мини движок написать?

  • @logius84

    @logius84

    2 жыл бұрын

    @@maximshevchenko6202 простые примеры , там как карту рандомную сделать, как дерево рубить... Там как менюшки предметов делать....

  • @logius84

    @logius84

    2 жыл бұрын

    @@maximshevchenko6202 П.С. на курсы не пойду, денях нету, и не пустят, под колючей прволкой, по миным полям желания ползти нету)))

  • @egerr10
    @egerr10 Жыл бұрын

    Молодец, преподавать это твоё

  • @blackbirdalternativedevelo1068
    @blackbirdalternativedevelo106813 күн бұрын

    36:00 Immediately Invoked Function Expression

  • @user-ek9tm9pq2j
    @user-ek9tm9pq2j Жыл бұрын

    по это лучшее объяснение...как купить ваш курс?

  • @lingkeef8238
    @lingkeef82382 жыл бұрын

    Снимите пожалуйста видео о Итераторах в JavaScript

  • @user-ij5vu4jn5w
    @user-ij5vu4jn5w Жыл бұрын

    Так работают функциональные компоненты в реакте - инкаспулированые объекты.

  • @seijer7078
    @seijer70782 жыл бұрын

    Крутой урок, вот только нету объяснения что там дает return и почему функция в конце присваивается переменной, что это дает. Без этого замыкания очень легкая тема, научиться их использовать легко, а вот понять как они устроены сложнее. И вот я нигде не могу найти этой инфы, возможно вы когда-нибудь запишите дополнение к этому видео с объяснением принципа действия.

  • @electrostryker6332

    @electrostryker6332

    2 жыл бұрын

    LearnJS, на этом сайте подробно и доступным языком написано про сам механизм работы замыканий

  • @vsevolodantonov5480
    @vsevolodantonov54802 жыл бұрын

    Господи Исусе, после посмотренных 6 видео о замыканиях, я только у Вас понял его суть и логику... Сердечно вам благодарен!!

  • @oldwhaler2040
    @oldwhaler20403 жыл бұрын

    Что лучше Немедленно вызываемые функции (IIFE) или блок кода {} для решения проблемы из последней части видео?

  • @Leon-rv2zm

    @Leon-rv2zm

    2 жыл бұрын

    Аналогичный вопрос, почему бы просто не обернуть блок кода в фигурные скобки? (ведь в данном случае мы не объявляем переменные через var)

  • @luxxxfilm

    @luxxxfilm

    2 жыл бұрын

    Детский сад если честно)

  • @diamaxel

    @diamaxel

    2 жыл бұрын

    область видимости не замкнется если функция не будет вызвана

  • @dmitrijloskutnikov694
    @dmitrijloskutnikov694 Жыл бұрын

    Последний пример. Если мы выполнили функцию, значит после её выполнения, все переменные внутри функции должны быть стерты из памяти. Раз мы можем их использовать при нажатии на кнопки, значит функция не выполнена, а запущена и все её переменные продолжают храниться в памяти. Как завершить эти функции, чтобы очистить память от переменных, если с какого-то момента нам они будут не нужны?

  • @maksimtroshkov173

    @maksimtroshkov173

    9 ай бұрын

    Достаточно просто в нужный момент очистить значение результирующей переменной, которой Вы присваивали вызов внешней функции (step1 = null). На learnjs про это рассказывается.

  • @Sergey_Klimov
    @Sergey_Klimov2 жыл бұрын

    То есть вы хотите сказать, что человек, который так доходчиво объясняет может иметь хейтеров?) Не поверю.

  • @DavitAve
    @DavitAve Жыл бұрын

    36:49 стоит ли такой формат использовать в своих проектах, хотелось бы услышать авторитетное мнение автора 👍)

  • @maksimtroshkov173

    @maksimtroshkov173

    9 ай бұрын

    Конечно стоит. У нас в компании такой подход используется для случаев, когда необходимо при загрузке страницы сразу же выполнить некий код, который находится в отдельном подключаемом скрипте - это может быть какой-то виджет, компонент и т.п. Сам раньше не задумывался как это работает и для чего используется. Благодаря этому видео всё стало ясно 🙂

  • @user-yd7rk7qd1o
    @user-yd7rk7qd1o10 ай бұрын

    так работает реакт

  • @user-uh1hi3ry9f
    @user-uh1hi3ry9f2 жыл бұрын

    Подача материала на 5+. (Автор молодец.) НО периодические сглатывания и чмоканье просто УНИЧТОЖАЮТ!!!!!

  • @valentinknoll4106
    @valentinknoll4106 Жыл бұрын

    Область можно и так создавать: { ' use strict' ...... Code } В каждом файле, и нечего не будет пересекаться

  • @user-xg9by2wp6t
    @user-xg9by2wp6t Жыл бұрын

    А подскажите пожалуйста, в последнем примере не проще было бы просто в блок кода { ... } Объединить, чем использовать 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

    @maksimtroshkov173

    9 ай бұрын

    Думаю это старый способ, который использовался в es5, когда для объявления переменных использовался var (т.к. его область видимости ограничивается только функцией, но не блоком). К примеру, у нас в компании есть легаси проект на es5, и там использовался именно такой подход с IIFE.

  • @user-fy7pv5cc7c
    @user-fy7pv5cc7c Жыл бұрын

    Дякую

  • @user-fp2ev2hc7v
    @user-fp2ev2hc7v3 ай бұрын

    все четко но я не понимаю почему нужно присваивать вызов фУНКЦИИ В ПЕРЕМЕННУЮ объясните кто знает очень нужно