Урок 2. JavaScript. Что такое контекст this. Как работает call, bind, apply

Поділитися
Вставка
  • Опубліковано 2 чер 2019
  • Эксклюзивный контент в Telegram: t.me/NextgenSocialBot
    Telegram: t.me/js_by_vladilen
    Instagram: / vladilen.minin
    Roadmap по каналу:
    vladilen.notion.site/Roadmap-...
    JavaScript. Что такое контекст this. Как работает call, bind, apply
    В видео вы узнаете, что такое контекст в JavaScript, как он работает, как его передавать и что с ним можно делать.
    В уроке вы узнаете про методы call, bind, apply - разницу между ними
    В конце вы увидите практическое применение prototype в связке с контекстом и ключевым словом this
    Сложный JavaScript простым языком:
    • Урок 1. JavaScript. Чт...

КОМЕНТАРІ • 606

  • @VladilenMinin
    @VladilenMinin  3 роки тому +41

    Эксклюзивный контент на моем Boosty: boosty.to/vladilen

    • @igorbond2823
      @igorbond2823 3 роки тому

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

    • @1984_Orwell
      @1984_Orwell 2 роки тому

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

  • @VladilenMinin
    @VladilenMinin  4 роки тому +606

    Ну что господа, стало ли более понятно с контекстом? Будем двигаться дальше?

    • @hellicobacterpillory6677
      @hellicobacterpillory6677 4 роки тому +8

      Единственное, что возник вопрос про call и apply
      Если у них разница только лишь в способе передачи аргументов, то зачем тогда в js два идентичных по сути метода?
      Или может все же есть ситуации, когда более удобно будет использовать тот или иной способ?

    • @VladilenMinin
      @VladilenMinin  4 роки тому +57

      @@hellicobacterpillory6677 Когда мы не знаем количество параметров, которые нужно передать в функцию, то единственный способ это использовать apply
      Когда знаем - call
      Запрос понял, сделаю пример

    • @vertalet76crew
      @vertalet76crew 4 роки тому +27

      Пожалуй лучшее объяснение что я видел на ютубе, жду промисы

    • @ural-site
      @ural-site 4 роки тому +24

      Нужно дополнить про специфику контекста в стрелочных функциях

    • @-it-kidys
      @-it-kidys 4 роки тому

      @@ural-site Насколько знаю в стрелочных функциях контекст жестко привязан к объекту в рамках которого она была инициализирована. По аналогии, как метод bind жестко закрепляет за собой контекст (и даже аргументы). Вроде прав? Поправьте, если не так

  • @user-lx3qs8ye3h
    @user-lx3qs8ye3h 3 роки тому +235

    02:57 оно вызывает то, что стоит слева от точки, где мы вызываем данную функцию
    03:20 Ключевое слово this всегда динамичное, оно указывает на тот объект в контексте которого оно было вызвано
    04:50 функция bind - в качестве значения этой функции му можем передать тот контекст который будет привязан у вызываемой функции
    05:37 сам по this себе указывает на глобальный объект window
    09:00 метод bind на самом деле не вызывает функцию, а возвращает новую функцию которая уже привязала к себе новый контекст
    09:50 метод group у объекта console
    12:51 С помощью метода bind, помимо того что первым параметром мы указываем контекст который должен быть привязан к новой функции, другими параметрами мы можем передавать следующие параметры которые нужны функции
    13:47 Метод call. Отличие от метода bind, что он метод call сразу же вызывает эту функцию, а метод bind в свою очередь возвращает нам новую функцию, и её мы можем вызвать тогда, когда нам угодно
    14:50 Метод apply. В отличие от методов bind и call, где можно бесконечное число параметров, в метод apply мы всегда передаем два параметра.
    У метода apply второй параметр всегда массив, и этот массив состоит из аргументов которые попадут в эту функцию.
    Метод apply сразу же вызывает эту функцию.
    15:45 Практика с использованием прототипов и контекста (this)

    • @_9382
      @_9382 9 місяців тому +1

      Кто ты воин !!!?? Доброжелатель )))

  • @wickedtorpedo75
    @wickedtorpedo75 3 роки тому +120

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

    • @grantorino3465
      @grantorino3465 2 роки тому +2

      как ты определил качество уроков?

    • @user-mn9zd8kw4k
      @user-mn9zd8kw4k Рік тому +6

      @@grantorino3465 он просто кайфанул так сказать

  • @user-ey1ls6kv7h
    @user-ey1ls6kv7h 3 роки тому +42

    Вот неужели никто раньше не мог так понятно объяснить?) шикардос!)

  • @user-km6pj7iq2r
    @user-km6pj7iq2r 3 роки тому +73

    11:35 job is undefined... аж грустно стало немного

    • @lostsouls3151
      @lostsouls3151 2 роки тому +1

      Посмотри в const person у тебя в logInfo должно быть ${job}, а не ${this.job}. Аналогично с phone. Такая же беда была. После замены все отображается

    • @stanislavkravtsov5404
      @stanislavkravtsov5404 2 роки тому +1

      @@lostsouls3151 чел ты...

    • @lostsouls3151
      @lostsouls3151 2 роки тому

      @@stanislavkravtsov5404 ???

    • @stanislavkravtsov5404
      @stanislavkravtsov5404 2 роки тому

      @@lostsouls3151 ну, она зарофлила, мол работа - не найдена(job is undefined)а ты подумал, что у неё код с "job" не работает

    • @lostsouls3151
      @lostsouls3151 2 роки тому +3

      @@stanislavkravtsov5404 бля.... Только дошло😅 а я на полном серьёзе подумал с кодом проблема 😂😂😂

  • @mike_tallon
    @mike_tallon 3 роки тому +39

    Отличный канал по JS. Однозначно лайк, хорошее объяснение материала!

  • @charliebrown5554
    @charliebrown5554 Рік тому +2

    2022 - видео до сих пор актуально.
    Спасибо, Владилен, за подробный разбор!)

  • @liliyawater2559
    @liliyawater2559 4 роки тому +2

    Просто восхитительные уроки, во всяком случае первые два)) Только начала смотреть плейлист)) Надеюсь, что я дальше буду смотреть с таким же удовольствием. Класс!!! Спасибо большое

  • @user-zp4cr8cb6d
    @user-zp4cr8cb6d 4 роки тому +7

    Спасибо за достаточно понятное объяснение, такого контента мало, в основном одни основы js

  • @Naddys0n
    @Naddys0n 3 роки тому +7

    Как я рад что нашел ваш канал, ваши видео эффективнее любых текстовых туториалов

  • @nekom112
    @nekom112 2 роки тому +1

    Владилен, спасибо тебе огромнейшее за материал. Очень помог! До этого видоса дня два разбирался с this и методами, не мог устаканить в голове. Респект за твой труд! Верю, что все эти не простые времена пройдут быстро!!!

  • @MT-qm1ll
    @MT-qm1ll 4 роки тому +12

    Просто супер понятно, каждый видос заслуживает высших похвал

  • @stanfarshtei1291
    @stanfarshtei1291 3 роки тому +1

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

  • @user-wz7oo6vu1r
    @user-wz7oo6vu1r 4 роки тому +170

    Наконец-то что-то адекватное появилось на этой площадке.

    • @n3squi
      @n3squi 4 роки тому +2

      Александр Зенин плюсую

    • @VSsoviet
      @VSsoviet 4 роки тому +6

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

    • @astrotrain
      @astrotrain 4 роки тому +3

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

    • @user-ve8om5zg3s
      @user-ve8om5zg3s 4 роки тому

      Глупые вы, намеренно создаёте уязвимость.

  • @ilgul9177
    @ilgul9177 4 роки тому +2

    Большущая БЛАГОДАРНОСТЬ за такой подробный урок и настолько понятную подачу материала, который сложно где-то раскопать в русскоязычном сегменте UA-cam.

  • @holyage3128
    @holyage3128 2 роки тому +1

    Спасибо за наглядное объяснения. Благодарен за то, что такой прекрасный контент еще и в бесплатном доступе)

  • @sulmom78
    @sulmom78 4 роки тому +1

    Вау. У меня просто нет слов. Лучшее объяснение контекста. Огромное спасибо, Владилен!

  • @linuxoid69
    @linuxoid69 3 роки тому +1

    Владилен, это просто бомба, ты объясняешь так как будто ты сам JS создал. Это лайк однозначно. Сразу видно что ты в этом просто "варишся" ни одной ошибки не сделал. Это означает что ты полностью осознаешь и понимаешь что ты делаешь. Супер.

  • @gregorytorshin2574
    @gregorytorshin2574 3 роки тому

    Практический пример афигенный! Спасибо, четко и понятно рассказываешь и показываешь

  • @StetskoV
    @StetskoV 3 роки тому +1

    Владлен, огромное спасибо за труд! Вы великолепно обьясняете!

  • @hasst9261
    @hasst9261 4 роки тому +2

    Спасибо за видео, все очень круто, интересно и приятно смотреть ваши видео. Все понятно, Вы очень хорошо объясняете. Удачи вам!

  • @user-pc4eg6rz2m
    @user-pc4eg6rz2m 7 місяців тому +1

    Отдельное Спасибо хочу сказать Владилену за то, что в начале видео он говорит, что тема простая для понимания. А то заходишь в панике пытаясь понять, и тут на тебе, "простая тема". Это помогает.!

  • @arthurkitskan2359
    @arthurkitskan2359 4 роки тому

    Наконец три этих метода и их отличие, объяснили доступным языком и, без "воды". Огромное спасибо, сейчас нужно подтянуть знания по JS и Ваш труд в этом очень помогает!

  • @Vlad-em1bx
    @Vlad-em1bx 4 роки тому

    Лучших уроков по javascript чем у Вас Владилен я не встречал!
    Так держать!

  • @user-gl5en4dc9i
    @user-gl5en4dc9i 2 роки тому

    Ваш контент просто 10 из 10. Действительно помогаете расширять видение кода и возможности использования js

  • @Sergio-ij7pw
    @Sergio-ij7pw 3 роки тому +5

    У вас просто талант объяснять сложные вещи простым языком. Снимаю шляпу)
    Я наконец-то понял зачем еще нужен bind, когда есть call.

  • @romko-romario
    @romko-romario 3 роки тому

    Очень полезное, информативное и доступно изложенное видео, с отличными примерами, респект автору! До его просмотра я так и не мог понять тонкости "this", а теперь всё стало ясно.

  • @sofkozl
    @sofkozl 2 роки тому +3

    Это не курс, а клад!! Спасибо большое ❤️

  • @alla_mardar
    @alla_mardar 3 роки тому

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

  • @andreyrudin2286
    @andreyrudin2286 4 роки тому +47

    реально спасибо большое, сколько на JS пишу, всегда боялся этого this, особенно bind и apply :-) вот прям рассказал так, что все очень и очень понятно, прям разжевал и в рот положил. Респектос!

  • @FrazyCrog
    @FrazyCrog 2 роки тому

    Отличный ролик! Спасибо, Владилен. Практический пример в конце реально очень ценен

  • @user-tx7uv9gl4f
    @user-tx7uv9gl4f 2 роки тому

    Спасибо Вам огромное! Смотрю, впитываю, записываю. Учусь у Вас!

  • @user-tj9gu6rk1y
    @user-tj9gu6rk1y 4 роки тому +1

    Пожалуй, самое доступное объяснение понятия контекста

  • @kostasancez2358
    @kostasancez2358 4 роки тому +4

    Круто, спасибо) Очень понятно все разжевал и положил в мозг, спасибо) Расскажи пожалуйста про классы еще, тоже интересная тема. Спасибо

  • @batradzbazzaev
    @batradzbazzaev 4 роки тому

    Именно такое объяснение нужно, чтобы понять как все работает. Спасибо большое. Долго разбирался с this, теперь все понятно. Оказалось это совсем просто

  • @user-en4cc9jg5c
    @user-en4cc9jg5c 2 роки тому +5

    Это великолепно! Смотришь и радуешься, что такие замечательные вещи узнаешь и понимаешь. Всё логично, а главное сразу видишь, зачем нужны эти "премудрости"))) Спасибо!

    • @malex-maleth
      @malex-maleth 3 місяці тому

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

  • @iKhripunov86
    @iKhripunov86 14 днів тому

    Лучшее объяснение bind, call,, apply, которое я видел. Спасибо! Для this не затронута тема стрелочных функций, но в целом все и так думают знают, что стрелочные функции не имеют собственного контекста выполнения. На практике это означает, что они наследуют this от родительской функции.

  • @user-mo4um4xy9l
    @user-mo4um4xy9l 2 роки тому

    Идеальное объяснение темы. В том числе и по хронометражу ролика.

  • @AOne1999
    @AOne1999 3 роки тому

    Просто взрыа мозга. Автор твои видео это просто пушка, другого названия не придумать наконец то я все это понял. Разложено по полочкам с превосходными примерами.

  • @aydenkoperta6266
    @aydenkoperta6266 4 роки тому

    Шикарное объяснения, спасибо большое! Всё чётко и понятно.

  • @kmz_3992
    @kmz_3992 3 роки тому +1

    Спасибо за уроки,ты большой молодец, столько часов крутого контента
    Начал смотреть в сторону смены проф ориентации, программирование может быть интересным)

  • @RewCSharp
    @RewCSharp 4 місяці тому +1

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

  • @Oughtem
    @Oughtem 4 роки тому

    Чувак, это самое ясное и понятное из всего, что я слышал о понятии «контекст». Когда учил ооп в пхп мозг взрывался от этого слова. Сенкью вери мач. Спустя полгода практики на место становится теория. Лайк, подписка, респект!

  • @seriusis
    @seriusis 4 роки тому +1

    Такого рода материалы - то, что нужно для понимания работы js. Уроки действительно исключительные и полезные )

  • @user-rp4oi8iw2c
    @user-rp4oi8iw2c Рік тому

    очень круто, наконец-то въехал в эту тему. Благодарность

  • @anastasiiam9930
    @anastasiiam9930 4 роки тому +1

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

  • @user-rd8uh2ym3c
    @user-rd8uh2ym3c 3 роки тому

    Наконец по человечески всё объяснили, а я голову ломал, когда учил. А мог просто посмотреть. Автор молодец

  • @ildarminurof1251
    @ildarminurof1251 Рік тому

    Замечательный пример вконце ! Благодарю !

  • @kirsanych5911
    @kirsanych5911 2 місяці тому +1

    Отличное объяснение. Спасибо

  • @magerrrr
    @magerrrr 4 роки тому +1

    Спасибо тебе огромное! Отличные примеры и объяснение

  • @user-ug1vi3bv1f
    @user-ug1vi3bv1f 2 роки тому

    Круто! С прототипами вообще ШОК контент для меня получился))) Очень удобно. Благодарю!!!

  • @user-cl6cq6gi8k
    @user-cl6cq6gi8k 4 роки тому +1

    Отличный видос где все полностью понятно все// Благодарю автора

  • @vitaliyk958
    @vitaliyk958 3 роки тому

    Круть, прям залип. Не ожидал, что такие курсы есть в свободном доступе

  • @apa6368
    @apa6368 4 роки тому

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

  • @user-ki8ij8xi9c
    @user-ki8ij8xi9c 3 роки тому +1

    Большое человеческое спасибо! Наконец-то все стало ясно.

  • @user-su4sj5um3d
    @user-su4sj5um3d 4 роки тому

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

  • @user-rv2yz8ox4d
    @user-rv2yz8ox4d 4 роки тому

    Здорово объясняешь, главное понятно. Спасибо.

  • @user-kb4ut9xg1l
    @user-kb4ut9xg1l Рік тому +1

    Лучшее объяснение bind, call и apply на всем рунете

  • @user-zh2bz9sn4r
    @user-zh2bz9sn4r 4 роки тому

    Очень доступно объясняете. Спасибо большое!

  • @user-en4cc9jg5c
    @user-en4cc9jg5c Рік тому

    Пересматриваю плейлист по второму кругу. Хочется поставить по второму лайку!) Спасибо огромное!

  • @iryna4898
    @iryna4898 4 роки тому +1

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

  • @alanpuch2243
    @alanpuch2243 5 місяців тому

    Благодарю, было очень полезно.

  • @user-hp5hw8su8q
    @user-hp5hw8su8q 4 роки тому +1

    Огонь урок, спасибо большое!

  • @aliaksandrvasiukhnevich1098
    @aliaksandrvasiukhnevich1098 4 роки тому +1

    Спасибо большое Владилен))) ты просто пушка !))

  • @kirillkhvorikov9470
    @kirillkhvorikov9470 Рік тому

    Спасибо, Владилен, за твои видео!

  • @user-vs6uu4uz5o
    @user-vs6uu4uz5o 3 роки тому

    Это зачет!! Очень доступно и понятно, спасибо!

  • @olesyamiller2480
    @olesyamiller2480 3 роки тому

    Otlichno ob'yasnyaete, spasibo!

  • @anatoliyburdasov4035
    @anatoliyburdasov4035 4 роки тому +1

    С первого раза понял!Другие так не могут обьяснить!Владилен я тебе благодарен!)))

  • @user-xo9ks9bc6j
    @user-xo9ks9bc6j 4 роки тому +2

    Сильно мощно молодёжно.. Спасибо!!!

  • @ser_apelsinov
    @ser_apelsinov 2 роки тому

    Очень понятно объясняешь. Спасибо 👍

  • @Creatura_Dei
    @Creatura_Dei 7 місяців тому

    Большое спасибо, Владилен!
    Стало намного понятнее😊

  • @giomikadze3318
    @giomikadze3318 Рік тому

    чувак !!! ты монстр просто !! ты настолько тактичный ... спасибо !!!❤

  • @boomz3132
    @boomz3132 Рік тому

    Спасибо за качественное объяснение, лайк подписка!

  • @antonlashuk2764
    @antonlashuk2764 4 роки тому

    Крутая подача и объяснение материала!!!! Владилен Топ!

  • @kostiantynsydorenko7344
    @kostiantynsydorenko7344 4 роки тому +1

    круто, молодец. Все четко и понятно!!!

  • @LinkinUA882
    @LinkinUA882 4 роки тому +1

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

  • @AntonKotorovych
    @AntonKotorovych 4 місяці тому

    Очень легко и доступно)). Думал что сложная тема но зашла просто с первого раза)

  • @bohdandemian152
    @bohdandemian152 2 роки тому

    Супер доступно та пізнавально🔥
    Дякую!

  • @vadimbevzyuk4756
    @vadimbevzyuk4756 Рік тому

    Спасибо большое! Я все понял. Круто и просто!

  • @valeriyr.8084
    @valeriyr.8084 4 роки тому

    Подписался,что редкость. Лайк тоже. Интересные уроки. Жду правильный node.js и web Socket.

  • @chessclub92
    @chessclub92 2 роки тому

    Владелин спасибо тебе очень круто объясняешь !

  • @ThePerfectLi_e
    @ThePerfectLi_e 4 роки тому

    Наконец все прояснилось с контекстом, огромное спасибо, лайк и подписка)

  • @user-st1xw9dq8r
    @user-st1xw9dq8r 10 місяців тому

    иногда думаю как хорошо, что знаю язык на котором ты говоришь и делишся такой классной инфой

  • @pitbrest
    @pitbrest 2 роки тому

    Отличный видос, понятный и позновательный, большое спасибо.

  • @MrGibl
    @MrGibl Рік тому

    Это просто супер. Так понятно и так детально !!!

  • @SoltonAnna
    @SoltonAnna 2 роки тому

    Большое спасибо!! Наконец-то нашла хорошее объяснение !!!

  • @petrvictorovich
    @petrvictorovich 2 роки тому

    Это прекрасссно!
    Впервые столкнувшись с роликами Владилена, сразу понал: "Вот тот человек, который мне щщас всё и объяснит!". =)
    А с этим набором продвинутых видосов у меня скоро не останется вопросов по JS
    Я начинаю чувствовать, что понимаю Javascript!

  • @korderorey2452
    @korderorey2452 4 роки тому

    Я новичок в программировании и долго не мог понять о каких контекстах и объектах вообще идет речь, поэтому для меня this было чем-то очень непонятным, но насколько же было гениально сказать про то, что this возвращает ту левую штуку после точки. Всё сразу встало на свои места и мне удалось разобраться с контекстами. Большое спасибо.

  • @user-ou5nc3he4s
    @user-ou5nc3he4s 3 роки тому

    учиться у senior'а мне как начинающего углублённо знать js и то, что у него под капотом, с грамотной подачей и доходчиво (хоть и придётся снова и снова возвращаться) прям супер

  • @ragimabagirova6228
    @ragimabagirova6228 2 роки тому

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

  • @seregaktyh
    @seregaktyh 4 роки тому +1

    Очень круто, на ютубе 99% видео о том, как создать переменную и вызвать функцию, скопированную из другого обучающего видео, а такие темы практически не затрагиваются. Тебе прям огромное спасибо)

    • @VladilenMinin
      @VladilenMinin  4 роки тому +8

      В этом и была идея. На канале не будет основ. Только крутые продвинутые вещи)

  • @Koora181
    @Koora181 Рік тому

    Большое спасибо за доступность и простоту)

  • @Game-oz6gg
    @Game-oz6gg 3 роки тому +6

    Владилен, огромное спасибо за уроки!
    Не хватает только разве что домашних заданий с задачками. Для полного усвоения материала

    • @petrvictorovich
      @petrvictorovich 2 роки тому +1

      Я теперь понимаю все конструкции языка.
      Далее можно смотреть и понимать код с Гитзаба
      А далее - пора будет начинать делать свои проектики.
      Задания - не нужны.

  • @NirupamDji
    @NirupamDji 4 роки тому

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

  • @alexz8018
    @alexz8018 2 роки тому

    Спасибо за простое и доходчивое объяснение. Начал понимать что к чему!

    • @AnatolyGradovoy
      @AnatolyGradovoy Рік тому

      а я больше приблизился к мысли, что я - пень

  • @badenglishcooljs8233
    @badenglishcooljs8233 4 роки тому

    Сколько я бился со скриптом,но только после твоих видео начал сам писать код
    Большое тебе спасибо!

  • @vladmatsala9753
    @vladmatsala9753 2 місяці тому +1

    Спасибо отдельно за порции. Их можно переварить за один присест.

  • @kostiantynsydorenko7344
    @kostiantynsydorenko7344 4 роки тому

    Супер, молодец, очень понятно объяснил👍

  • @ilialunga6778
    @ilialunga6778 3 роки тому

    Спасибо, круто подаешь материал!