Замыкания, просто и с примерами. Функции JavaScript

Поделиться
HTML-код
  • Опубликовано: 17 май 2024
  • 💎 Курс Функции в 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

Комментарии • 151

  • @agrbear
    @agrbear 2 года назад +105

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

    • @magbear3205
      @magbear3205 2 года назад +1

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

    • @annashirinskaya7400
      @annashirinskaya7400 2 года назад +15

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

    • @eclipseweb1419
      @eclipseweb1419 Год назад

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

    • @pung5859
      @pung5859 4 месяца назад

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

    • @pung5859
      @pung5859 4 месяца назад

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

  • @anastasiiagor6728
    @anastasiiagor6728 Год назад +7

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

  • @mrhawking
    @mrhawking Год назад +3

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

  • @user-cz9uz1tr3r
    @user-cz9uz1tr3r 2 года назад +6

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

  • @lol_hp
    @lol_hp Год назад +6

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

  • @aleksandrfedotov9620
    @aleksandrfedotov9620 2 года назад +11

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

  • @alexanderalexander7722
    @alexanderalexander7722 2 года назад +9

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

  • @forwardspeed983
    @forwardspeed983 2 года назад +1

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

  • @Alex__88
    @Alex__88 8 месяцев назад

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

  • @maximshevchenko6202
    @maximshevchenko6202 2 года назад +7

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

  • @aserezhnikov
    @aserezhnikov 7 месяцев назад

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

  • @alexbaboy7292
    @alexbaboy7292 2 года назад +3

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

  • @AntonioBenderas
    @AntonioBenderas Год назад +5

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

  • @romasadovnik3456
    @romasadovnik3456 Год назад +1

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

  • @maksimtroshkov173
    @maksimtroshkov173 8 месяцев назад

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

  • @user-fd1np4pt7y
    @user-fd1np4pt7y Год назад

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

  • @colodatwin3102
    @colodatwin3102 7 месяцев назад

    This lesson is really useful ! Thanks a lot!

  • @rusikosi1
    @rusikosi1 Год назад +2

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

  • @user-iv6hg2pc8l
    @user-iv6hg2pc8l Год назад +1

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

  • @lTanTea
    @lTanTea 2 года назад +2

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

  • @tinalee8686
    @tinalee8686 2 года назад +3

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

  • @WorldCitizen1984
    @WorldCitizen1984 Год назад

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

  • @user-zc9kd2ci4q
    @user-zc9kd2ci4q 2 года назад +2

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

  • @daredevil_37
    @daredevil_37 Год назад

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

  • @maksymdavydchuk
    @maksymdavydchuk 2 года назад +4

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

  • @ibragimtseboev7848
    @ibragimtseboev7848 2 года назад +1

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

  • @user-gc7kz8du8x
    @user-gc7kz8du8x 10 месяцев назад

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

  • @alenalel1267
    @alenalel1267 2 года назад +11

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

    • @itsemil2722
      @itsemil2722 Год назад +2

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

  • @user-fp8fk5qp7x
    @user-fp8fk5qp7x 8 месяцев назад

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

  • @gvitoss
    @gvitoss Год назад +1

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

  • @geroin6294
    @geroin6294 2 года назад +2

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

  • @phd-oldremain
    @phd-oldremain 2 года назад +3

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

  • @imaks1076
    @imaks1076 2 года назад +2

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

  • @oksanamatviienko5339
    @oksanamatviienko5339 Год назад

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

  • @user-qz8kj3tr8i
    @user-qz8kj3tr8i Год назад +1

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

  • @user-ke7yd2qe5v
    @user-ke7yd2qe5v Год назад

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

  • @user-hr3zp4jj5w
    @user-hr3zp4jj5w 2 года назад +2

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

  • @romanchernyshov2632
    @romanchernyshov2632 Год назад

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

  • @nadiapekarskaya9776
    @nadiapekarskaya9776 3 месяца назад

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

  • @user-id4rd4wj6t
    @user-id4rd4wj6t 2 года назад +2

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

  • @user-bn5xe8nl3i
    @user-bn5xe8nl3i 5 месяцев назад

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

  • @RusovMikhail
    @RusovMikhail 2 года назад +2

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

  • @Pavelius
    @Pavelius 5 месяцев назад

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

  • @matvienko_p
    @matvienko_p Год назад

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

  • @wasilijivanich7750
    @wasilijivanich7750 2 года назад +2

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

  • @oleksandrkotovskyi4203
    @oleksandrkotovskyi4203 5 месяцев назад

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

  • @bunnybugs6623
    @bunnybugs6623 2 года назад +1

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

  • @forwardspeed983
    @forwardspeed983 2 года назад +3

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

  • @user-cg3zj8if4m
    @user-cg3zj8if4m Год назад

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

  • @yarik83men51
    @yarik83men51 2 года назад +1

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

  • @Alex-rs1tt
    @Alex-rs1tt Год назад

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

  • @Mirrasim
    @Mirrasim Год назад

    Spasibo za kurs

  • @screppykoko951
    @screppykoko951 2 года назад +2

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

  • @MrVIPKent
    @MrVIPKent Год назад

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

  • @aleksandr2236
    @aleksandr2236 Год назад +1

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

  • @user-fr9fl3ds5t
    @user-fr9fl3ds5t 10 месяцев назад

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

  • @krup1783
    @krup1783 Год назад

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

  • @user-vs1it4no2v
    @user-vs1it4no2v Год назад

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

  • @rslazamat
    @rslazamat 2 года назад +2

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

  • @vadimkunitskyi3699
    @vadimkunitskyi3699 Год назад

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

  • @zohidmustafoyev2448
    @zohidmustafoyev2448 11 месяцев назад

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

  • @aleksandrgaluza7333
    @aleksandrgaluza7333 2 года назад

    Spasibo ochen poniatno i interesno

  • @krepkovmeste
    @krepkovmeste Год назад

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

  • @user-xu2ro3fg2o
    @user-xu2ro3fg2o 2 года назад +1

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

  • @livingston9750
    @livingston9750 2 года назад

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

  • @Kreminb
    @Kreminb 2 года назад +1

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

  • @Egoriy1977
    @Egoriy1977 2 года назад +1

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

  • @origamist757
    @origamist757 2 года назад +3

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

  • @Indy_660
    @Indy_660 Год назад +1

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

  • @sekirogenshiro2210
    @sekirogenshiro2210 2 года назад

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

  • @PythonDevelopment
    @PythonDevelopment 10 месяцев назад

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

  • @WoTdrugsANDrocknroll
    @WoTdrugsANDrocknroll 2 месяца назад

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

  • @brutix80
    @brutix80 Год назад +1

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

  • @azraeldadashev4424
    @azraeldadashev4424 2 года назад +1

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

  • @azatazamatov8820
    @azatazamatov8820 2 года назад +1

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

  • @user-id9ui2en1y
    @user-id9ui2en1y 2 года назад

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

  • @YusupOzdoyev
    @YusupOzdoyev Год назад

    спасибо!

  • @aleksanderr4673
    @aleksanderr4673 Год назад

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

  • @vanyavedro9857
    @vanyavedro9857 2 года назад +1

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

  • @user-ij5vu4jn5w
    @user-ij5vu4jn5w 11 месяцев назад

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

  • @egerr10
    @egerr10 Год назад

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

  • @managerinfo3358
    @managerinfo3358 2 года назад

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

  • @user-ek9tm9pq2j
    @user-ek9tm9pq2j Год назад

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

  • @lingkeef8238
    @lingkeef8238 2 года назад

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

  • @logius84
    @logius84 2 года назад +9

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

    • @maximshevchenko6202
      @maximshevchenko6202 2 года назад

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

    • @logius84
      @logius84 2 года назад

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

    • @logius84
      @logius84 2 года назад

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

  • @oldwhaler2040
    @oldwhaler2040 2 года назад +3

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

    • @Leon-rv2zm
      @Leon-rv2zm 2 года назад +1

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

    • @luxxxfilm
      @luxxxfilm 2 года назад

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

    • @user-ix6pr2et3p
      @user-ix6pr2et3p 2 года назад

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

  • @user-ij5vu4jn5w
    @user-ij5vu4jn5w 11 месяцев назад

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

  • @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 8 месяцев назад

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

  • @user-yd7rk7qd1o
    @user-yd7rk7qd1o 9 месяцев назад

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

  • @Sergey_Klimov
    @Sergey_Klimov 2 года назад +1

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

  • @user-fy7pv5cc7c
    @user-fy7pv5cc7c Год назад

    Дякую

  • @vsevolodantonov5480
    @vsevolodantonov5480 2 года назад

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

  • @giorgipetrosyan633
    @giorgipetrosyan633 2 года назад

    I love it 5+

  • @seijer7078
    @seijer7078 2 года назад +1

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

    • @electrostryker6332
      @electrostryker6332 2 года назад

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

  • @DavitAve
    @DavitAve Год назад

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

    • @maksimtroshkov173
      @maksimtroshkov173 8 месяцев назад

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

  • @ruslan_lwow79
    @ruslan_lwow79 2 года назад +1

    РІвень!

  • @user-fp2ev2hc7v
    @user-fp2ev2hc7v 2 месяца назад

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

  • @dmitrijloskutnikov694
    @dmitrijloskutnikov694 Год назад +1

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

    • @maksimtroshkov173
      @maksimtroshkov173 8 месяцев назад

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

  • @SydneyOnline
    @SydneyOnline 2 года назад

    а почему я не могу сделать createStep() ? почему нужно let step1 = createStep();
    step1(); ?

    • @_seethesea_
      @_seethesea_ 2 года назад +1

      createStep возвращает функцию, и в step1 ты записываешь результат выполнения createStep
      на 15ой минуте про это есть

  • @user-uh1hi3ry9f
    @user-uh1hi3ry9f 2 года назад

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