JavaScript v.2.0. Замыкания

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ย. 2024

ความคิดเห็น • 169

  • @ДмитроСтахов-с9ш
    @ДмитроСтахов-с9ш 4 ปีที่แล้ว +187

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

  • @oleh78614
    @oleh78614 4 ปีที่แล้ว +84

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

    • @itgid
      @itgid  4 ปีที่แล้ว +7

      Спасибо

    • @foobar-fhky
      @foobar-fhky 3 ปีที่แล้ว +6

      Тоже три дня читал умные статьи и ничего не понял, зачем это нужно. Здесь 20 минут и все понятно

  • @bohdanovk
    @bohdanovk 4 ปีที่แล้ว +18

    Я однажды понял что такое замыкание, но так и понял почему такое название. И только сейчас допер, что замыкается ОБЛАСТЬ ВИДИМОСТИ. Большое спасибо

  • @fantast2568
    @fantast2568 4 ปีที่แล้ว +33

    "Замыкания" - это замыкание области видимости на какой - то объем (scope) переменной. 18:50

  • @АлексейК-м3л
    @АлексейК-м3л 3 ปีที่แล้ว +1

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

  • @Azzagtot
    @Azzagtot 4 ปีที่แล้ว +7

    Для меня всегда было загадкой нагнетание ветра вокруг Замыкания. Это же элементарная вещь, что нам наглядно продемонстрировал своим изложением Александр. В литературе же его описывают такими страшными словами, что студент в панике просто перелистывает дальше...

  • @elifas2012
    @elifas2012 4 ปีที่แล้ว +8

    У вас талант объяснять сложные вещи простым языком

  • @ДмитроКазаров
    @ДмитроКазаров 3 ปีที่แล้ว +2

    Спасибо большое. Лучшее обьяснение что я нашел. Даже в платных курсах эту тему не объяснили так понятно как Вы. Дай Бог Вам здоровья!!!

  • @_pheax
    @_pheax 2 ปีที่แล้ว

    очень понятно, спасибо Александр,,, доходчиво и на простых примерах

  • @АлександрМерный-м1ч
    @АлександрМерный-м1ч 4 ปีที่แล้ว +5

    Александр, ваш канал - клад и я его нашел. Столько информации и все бесплатно!! Респект и уважение!

  • @ism5751
    @ism5751 4 ปีที่แล้ว +4

    Вообще все видео Александра офигенно понятные! Если мне попадается тема,где что-то догнать не могу,сразу лезу искать здесь на канале ваши объяснения😊и после этого,всё сразу по полочкам раскладывается

  • @ekaterina2073
    @ekaterina2073 2 ปีที่แล้ว

    как всегда гениально и просто объяснил, даже тупой бы понял 👍🏻 ТАЛАНТ!

  • @ВикторТуманов-р9з
    @ВикторТуманов-р9з 3 ปีที่แล้ว +2

    очень крутой мужик , многое понятно объясняет!! спасибо.

  • @lordunitaz
    @lordunitaz 3 ปีที่แล้ว +2

    Самый адекватный и понятный ролик по замыканиям. Спасибо тебе, золотой человек.

  • @yarik83men51
    @yarik83men51 3 ปีที่แล้ว +2

    Ваше желание научить очень внушительное... Понятно, удобно, очень четко.

  • @KanalReal
    @KanalReal 2 ปีที่แล้ว

    Прошёл курс по JS - все хорошо. Можно приобретать. Особенно понравилось кол-во практики и поддержка в телеграмме и на форуме.

  • @ЕвгенийТкачук-й4к
    @ЕвгенийТкачук-й4к 2 ปีที่แล้ว

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

  • @АлисаИкс-н2ы
    @АлисаИкс-н2ы 2 ปีที่แล้ว

    Храни вас вселенная !!!! Самое адекватное объяснение вообще из всех возможных!!!!!

  • @trippie7014
    @trippie7014 3 ปีที่แล้ว +34

    Господи спасибо. Самые полезные 20 минут в моей жизни

  • @timurbulaaras75
    @timurbulaaras75 2 ปีที่แล้ว

    Супер. В первый раз просмотра было не понятно, второй - просто наслаждение для понимания. Благодарю)))

  • @kitten20811
    @kitten20811 4 ปีที่แล้ว +1

    Всегда удивлялся Вам как Вы сложные вещи умеете объяснять просто! Вы большой молодец !

  • @gapirovo97
    @gapirovo97 3 ปีที่แล้ว +1

    Спасибо тебе человек! Программист с 10 летним опытом не смог мне объяснить, а тут 20 мин а вуаля)))

  • @ТимурТокумов-и1к
    @ТимурТокумов-и1к 2 ปีที่แล้ว +2

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

  • @alleksgrinn7227
    @alleksgrinn7227 4 ปีที่แล้ว +2

    Вот за это я и люблю JavaScript .., всегда есть над чем по-извращаться...
    Спасибо !

    • @DrZlad
      @DrZlad 4 ปีที่แล้ว

      Alleks Grinn ахахах))

  • @ВалерийАрутюнов-д3н
    @ВалерийАрутюнов-д3н 3 ปีที่แล้ว +1

    гениальная подача! 20 минут и все понятно)

  • @vikingulfhednar4510
    @vikingulfhednar4510 2 ปีที่แล้ว

    Аааа спасибо тебе добрый человек, единственное видео, после которого я абсолютно четко понял что такое замыкание! Благодарю!!!! Спасибо 🍺

  • @dimka_shchepa
    @dimka_shchepa 3 ปีที่แล้ว +2

    капец!))) как четко всё прям разжевано))) благодарю Вас за это видео))

  • @NataliiaLutsenko-t1m
    @NataliiaLutsenko-t1m 4 ปีที่แล้ว +3

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

  • @awenn2015
    @awenn2015 4 ปีที่แล้ว +6

    Я думал что замыкания это что то страшное , а это просто замыкание области видимости )

  • @yuutsy5398
    @yuutsy5398 2 ปีที่แล้ว +1

    Потрясающе! Спасибо за подробные объяснения

  • @sion4988
    @sion4988 2 ปีที่แล้ว

    Лучшее объяснение которое слышал, очень наглядный пример, cпасибо большое

  • @ПавелРостовцев-з7п
    @ПавелРостовцев-з7п 3 ปีที่แล้ว +1

    Спасибо за видео, лучшее объяснение которое видел, видел я их достаточно много

  • @galayda_taras
    @galayda_taras 3 ปีที่แล้ว

    Спасибо за полезнейшее видео!!!

  • @кириллроманычев-ш3щ
    @кириллроманычев-ш3щ 3 ปีที่แล้ว +2

    Спасибо, вы очень помогли)) от других авторов материалы на эту тему довольно непонятные.

  • @galizaslavsky3748
    @galizaslavsky3748 4 ปีที่แล้ว +1

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

  • @elenalevanova6022
    @elenalevanova6022 3 ปีที่แล้ว

    Самое понятное объяснение из всех услышанных!

  • @yarik83men51
    @yarik83men51 3 ปีที่แล้ว +1

    Как всегда на высоте качество контента.

  • @NemoKiss
    @NemoKiss 2 ปีที่แล้ว

    Спасибо!!! Оказалось очень просто всё!

  • @sergeypeksymov6549
    @sergeypeksymov6549 3 ปีที่แล้ว +1

    Спасибо 👍👍👍

  • @АлександрМитькин-ь6в
    @АлександрМитькин-ь6в 4 ปีที่แล้ว +1

    Шикарные уроки. Отлично преподаёте!

  • @АлександрСеменюк-у7п
    @АлександрСеменюк-у7п 4 ปีที่แล้ว +2

    И как я раньше не мог этого понять. Спасибо

  • @irinasname
    @irinasname 3 ปีที่แล้ว

    чудовий матерiал. Дуже дякую))

  • @artempronenko5105
    @artempronenko5105 4 ปีที่แล้ว +18

    Здравствуйте! Давно смотрю ваш канал. И советую всем кто хочет изучить js. потому что на всем ютуб нет более полезного канала. Огромное спасибо вам за ваши труды!!
    И хотел задать вопрос: Не планируете ли вы записать видео о drag and drop. Так как все видео на ютубе о этой теме давно устарели, их очень мало, и почти все на английском языке. А в HTML Появился атрибут "draggable" интересно было бы посмотреть его в связке с drag and drop.
    как вариант - сделать урок про drag and drop в виде "пишем пазлы на js"

  • @coldy7382
    @coldy7382 4 ปีที่แล้ว +1

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

  • @Fovaxus
    @Fovaxus 4 ปีที่แล้ว +2

    Очень хорошее объяснение, спасибо вам большое.

  • @ХристинаШевчук-ы9щ
    @ХристинаШевчук-ы9щ 4 ปีที่แล้ว +1

    Дуже потрібна штука! Дякую

  • @kenanhaciyev3759
    @kenanhaciyev3759 2 ปีที่แล้ว

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

  • @АлексейФокин-г8м
    @АлексейФокин-г8м 3 ปีที่แล้ว

    Круто! Спасибо! Я понимал но сейчас разобрался

  • @TV-cq5sc
    @TV-cq5sc 2 ปีที่แล้ว

    Лайк подписка и пожизненная благодарность!!!
    Алекс спасибо Вам!! я за 20 минут понял больше, чем за неделю зубрежки документации!

  • @dobletroy8367
    @dobletroy8367 3 ปีที่แล้ว +1

    Просто шикарно...Лайк

  • @Fenjkeee
    @Fenjkeee 3 ปีที่แล้ว +1

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

  • @БогданІвахненко-ь8ч
    @БогданІвахненко-ь8ч 3 ปีที่แล้ว

    Вау
    Просмотрел до этого 3 объяснения от других блогеров, но только тут я понял
    Курсы, которые реально стоят того, что бы их купить
    Спасибо!

  • @АлтынайШангитбаева-ч7с
    @АлтынайШангитбаева-ч7с ปีที่แล้ว

    Супер поняла наконец то респект автору

  • @dabroful
    @dabroful ปีที่แล้ว

    Наконец-то я понял! Спасибо!

  • @Астролайф-э9ю
    @Астролайф-э9ю ปีที่แล้ว

    лучший! благодарствую

  • @nemirovandrei
    @nemirovandrei ปีที่แล้ว

    Замкнул знания. Спасибо

  • @ВолодимирПриходько-л2л
    @ВолодимирПриходько-л2л 4 ปีที่แล้ว +1

    Прекрасный курс! Впрочем, как и Ваши предыдущие курсы :)

  • @olegisachenko5945
    @olegisachenko5945 4 ปีที่แล้ว +1

    Всё очень доходчиво, спасибо.

  • @samkrekotyn
    @samkrekotyn 2 ปีที่แล้ว

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

  • @Assikokda
    @Assikokda 3 ปีที่แล้ว +1

    Спасибо вроде стало понятно

  • @alanpuch2243
    @alanpuch2243 ปีที่แล้ว

    Благодарю, понял.

  • @sergeyf466
    @sergeyf466 3 ปีที่แล้ว

    Спасибо за Ваш труд!

  • @m.efremova4649
    @m.efremova4649 3 ปีที่แล้ว

    Невероятно!! Спасибо Вам!!

  • @bulsond
    @bulsond 4 ปีที่แล้ว +12

    Есть такая поговорка: "Голь на выдумки хитра". Это как раз про замыкания - этакая инкапсуляция для нищих. Когда в нормальных ООП языках достаточно было объявить класс с приватным полем и методом, в javascript нашли вот такое решение как объединить данные (состояние) с функцией. Сейчас в js завезли наконец классы, теперь про замыкания можно забыть.

    • @mustbefail
      @mustbefail 4 ปีที่แล้ว +1

      Кроме ООП, есть и другие подходы в программировании.

  • @valerian6943
    @valerian6943 3 ปีที่แล้ว

    Хорошее объяснение

  • @maksymovych_maksym
    @maksymovych_maksym 4 ปีที่แล้ว +1

    Спасибо. Очень просто и понятно!

  • @glebkabayjanov5646
    @glebkabayjanov5646 4 ปีที่แล้ว +1

    Лайк очень полезно и понятно

  • @MrBeastFan_Gyak
    @MrBeastFan_Gyak 3 ปีที่แล้ว +4

    видео настолько хорошее, что я просто хочу его скачать)) так что если что-то случится, у меня есть видео
    )

  • @siablo009
    @siablo009 4 ปีที่แล้ว +1

    Не знал, что так можно) Круто)

  • @AZart-infa
    @AZart-infa 4 ปีที่แล้ว +2

    Давненько на js кодю, но мало понимал что это. Щас стало ясно.

  • @АлександрМусатов-м5д
    @АлександрМусатов-м5д 2 ปีที่แล้ว

    Стало еще чуточку понятнее! 😆

  • @MegaTesei
    @MegaTesei 3 ปีที่แล้ว

    Прекрасное объяснение!

  • @Johan2tt
    @Johan2tt 3 ปีที่แล้ว

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

  • @maxzm1279
    @maxzm1279 2 ปีที่แล้ว

    спасибо, наконец то понял!

  • @valentinknoll4106
    @valentinknoll4106 4 ปีที่แล้ว +1

    Спасибо

  • @rtotwmoclew
    @rtotwmoclew 3 ปีที่แล้ว

    спасибо большое!!!

  • @СергейИвашкин-е4у
    @СергейИвашкин-е4у 4 ปีที่แล้ว +1

    Супер 🖒

  • @militer4994
    @militer4994 4 ปีที่แล้ว +1

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

  • @ОлексійУкраїна-й7г
    @ОлексійУкраїна-й7г 4 ปีที่แล้ว +1

    огромное. вчера только с debounce столкнулся , и подвис из-за замыкания

  • @eurorock5912
    @eurorock5912 4 ปีที่แล้ว +1

    Да, я тоже наткнулся на такое же самое простое объяснение замыканий.

  • @orange-vlcybpd2
    @orange-vlcybpd2 2 ปีที่แล้ว

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

  • @nso655
    @nso655 4 ปีที่แล้ว +1

    Спасибо большое!

  • @HappyLifege
    @HappyLifege 4 ปีที่แล้ว +1

    Хорошее видео, спасибо!

  • @Максимда-л8ы
    @Максимда-л8ы ปีที่แล้ว

    Если честно, меня удивляют комментарии к данному видео и конкретно данное видео. Нахожусь в средине курса в данньій момент, но решил глянуть что ждет в конце js 2.0. Я думал данньій подход с локальньіми областями видимости логично понятен всем🧐

  • @evand.349
    @evand.349 3 ปีที่แล้ว +1

    Почему счётчик растёт на 1? На втором и последующих шагах(вызовах t1) для одной и той же области видимости мы каждый раз снова проходим через a=0;

  • @ulaniskanderov547
    @ulaniskanderov547 3 ปีที่แล้ว +1

    Классный урок, все уроки классные! Можно тупой вопрос задам?:)
    А можно переменную задать как Const и не мучаться с замыканиями?

    • @eximenz
      @eximenz 3 ปีที่แล้ว

      Ахахаахахахаха, действительно))) ты гений))

    • @ВолодимирБолібок-м9й
      @ВолодимирБолібок-м9й 3 ปีที่แล้ว

      Нет, так не будет работать, так как Сonst нельзя изменять

  • @3dexploration317
    @3dexploration317 3 ปีที่แล้ว

    Здравствуйте! Спасибо за прекрасные уроки, вы супер. Я недавно начал знакомиться с JS и вот пытаюсь комментировать данный урок, так как в комментах есть вопрос: "Почему нельзя вызвать сразу функцию, а только через переменную?". И в этом есть хитрость данного счётчика. Счётчик работает не из-за функции замыкания, а из-за способа его вызова, она как бы повторяет работу обычной функции с глобальной переменной. Это легко проверить если анонимной функции дать имя и вызвать его двумя способами. В первом случае его просто вернуть без скобок в родительской функции, а во втором случае его вернуть со скобками, по сути вызывать его внутри родителя. В первом случае обработчик вынужден создать область видимости для функции так как у него находится функция с именем, которая возвращена, но не вызвана - то есть вызывается через переменную, а значит будет работать счётчик и локальная переменная, которая в данном случае имеет преимущество, будет перезаписана вновь и вновь, как это происходит в вашем случае с анонимной функцией или с функцией, которая обращается к глобальной переменной. Во втором случае обработчик получает функцию замыкания с именем, которая возвращена со скобками, то есть вызвана, и которая сразу перезаписывает локальную переменную и всё закончено, и никаких преимуществ для локальной переменной при создании счётчика, а только для функции. Если я, как и многие другие, нахожусь в заблуждении - то прошу вас прокомментировать или создать видеоурок по данному вопросу.

  • @borisn879
    @borisn879 3 ปีที่แล้ว

    Имхо, замыкание - чрезвычайно интуитивное понятие. Даже новичок, как только что изучил function, решает написать функцию. И пусть она вернет функцию. А область видимости лежит в интуитивной плоскости, изначально "чувствуешь", что контекст не потеряется. Зато академически замыкание можно описать так, что мало кто поймет, лишь только не все.

  • @fk1ip7
    @fk1ip7 ปีที่แล้ว

    о, просветление пришло, спасибо вам!

  • @MrVIPKent
    @MrVIPKent 2 ปีที่แล้ว

    Зрозуміло все з першого разу

  • @Shved_2.0
    @Shved_2.0 4 ปีที่แล้ว +2

    выглядит как class T1( внутри есть переменная и метод работы с переменной)
    let b = new T1();
    let c = new T1();

  • @bunnybugs6623
    @bunnybugs6623 3 ปีที่แล้ว +1

    Сколько вспомнилось Своих ошибок )))

  • @lekbit9865
    @lekbit9865 4 ปีที่แล้ว +2

    И я всё равно не понимаю почему при вызове функции "b()" значение переменной "а" каждый раз не перезаписывается на "0". Ведь строка "let a = 0" стоит перед "return function". Или это происходит по причине того, что переменную "а" не можно создать снова, т.к. она уже хранится в памяти переменной "b" ???

    • @ВячеславТихонов-о3х
      @ВячеславТихонов-о3х 3 ปีที่แล้ว +1

      В переменные b и c помещается не функция t1, а РЕЗУЛЬТАТ ВЫЗОВА функции t1, об этом говорят круглые скобки после t1 (let b = t1() ). Что является результатом вызова t1? Возврат (return) безымянной функции function () { a = a + 1; return a}, о чём хорошо говорит вывод console.log(b) и там НЕТ никакого объявления переменной let a = 0. Т.е. в переменных b и c содержатся экземпляры функций и её (замкнутого) окружения, конкретно переменная a, необходимая для её работы, со значением 0. Функция всего лишь "запомнила" это значение. И каждый вызов функций b и c приводит к увеличению запомненного значения на 1, причём каждая из них помнит своё значение. У функции t1 вспомогательная роль, она просто ограничивает область видимости безымянной функции внутри неё, причём из вне.
      Я так понял это видео, может где ошибся с формулировками.

  • @gorkhachatryan3719
    @gorkhachatryan3719 2 ปีที่แล้ว

    klass

  • @denisk.1213
    @denisk.1213 2 ปีที่แล้ว

    да еще и художник)!!!

  • @IlyaMatveev_1
    @IlyaMatveev_1 3 ปีที่แล้ว

    Я бы сказал нужно понимать не как работает функция, а как выделяется память под эти функции.

  • @yaroslavzef7267
    @yaroslavzef7267 4 ปีที่แล้ว +1

    Подскажите пожалуйста. Вот уже в конце, когда полностью создали функцию, почему нельзя вызвать ее сразу? t1() а надо присвоить её переменной b?

  • @tibul81
    @tibul81 4 ปีที่แล้ว +3

    Подскажите, почему надо присваивать переменной b функцию t1? Почему нельзя работать с функцией t1 напрямую? какой-то в этом смысл?

    • @Fovaxus
      @Fovaxus 4 ปีที่แล้ว +1

      Смысл в том, что так можно создавать сколько угодно независимых экземпляров этой функции со своими собственными областями видимости, в видео это были переменные b и c

    • @bulsond
      @bulsond 4 ปีที่แล้ว

      @@Fovaxus Угу, этакая инкапсуляция для нищих.

    • @Vyacheslav1294
      @Vyacheslav1294 4 ปีที่แล้ว

      Там переменной b присваивается не функция t1, а результат вызова этой функции.
      Сам тоже не с первого раза понял.
      Чем-то похоже на конструктор в ООП подходе.

  • @рудируди-т5н
    @рудируди-т5н ปีที่แล้ว

    Поясните кто шарит?
    Потому что по мне все происходящее не логично. Изначально же было сказано, что переменная живет, пока функция работает или что то в этом роде.
    По мне должно быть так, что при каждом вызове функции t1 в данном примере - переменная a объявляется заново и далее 1 раз увеличивается на 1. Почему сохраняется ее значение если функция отработала.
    Т.е. как я вижу это:
    Вызов функции t1
    В ней объявляется a=0.
    Возвращается другая функция, которая увеличивает a++.
    Функция t1 своё отработала.
    При следующем вызове разве не должно все повторится с начала, заново объявится a=0.

    • @рудируди-т5н
      @рудируди-т5н ปีที่แล้ว

      А все, почитал комменты - понял,
      Переменным b и c присваивается то, что возвращает функция t1, т.е. функция, увеличивающая счётчик в функции t1.

  • @itlife8792
    @itlife8792 4 ปีที่แล้ว

    не кодю впринципе, но я понял эту тему и я не вижу тут сложностей, видать сказывается грамотное и в тоже время просто объяснение автора.