Полный разбор THIS в JavaScript за 26 минут | this в стрелочных функциях, call bind apply, Window

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 มิ.ย. 2024
  • ⭐ BOOSTY - задача с собеса по THIS, конспекты-шпаргалки и другие материалы:
    boosty.to/pomazkovjs
    ⭐ Поддержать донатом: boosty.to/pomazkovjs/single-p...
    Этот ролик - полный гайд по this в JS.
    Из него вы узнаете про:
    - this в глобальной области видимости (объекты Window и Global)
    - this в обычных функциях
    - this в функциях-конструкторах
    - особенности this в стрелочных функциях
    - this в forEach и setTimeout
    и многое другое - с объяснением и примерами.
    Приятного просмотра!
    Обновлённый роудмэп:
    miro.com/app/board/uXjVOv90G2k=/
    Плейлист "JS простым языком":
    • ЗАМЫКАНИЯ В JS за 15 м...
    * СОЦ. СЕТИ:
    👀 Instagram - / pomazkov.js
    🚀 Telegram - t.me/pomazkovjs
    Тайм-коды:
    00:00 Интро
    01:09 Что такое this в js
    01:41 this в глобальном контексте
    02:14 Что такое объект Window в js
    04:09 this в функциях js
    04:28 this в обычных функциях
    05:58 Что такое Global в js
    06:31 this и use strict
    07:07 this в методе объекта
    09:28 call, apply: вызов с привязкой контекста
    11:28 Отличие call и apply
    12:03 Что такое bind в js
    13:04 this в функциях-конструкторах
    16:09 this в стрелочных функциях
    17:53 Пример: this и forEach
    20:42 Пример: this в setTimeout
    24:11 Почему стрелочные функции нельзя использовать с new
    25:02 Задача с собеседования по this и конспекты
    25:47 БОНУС
    #javascript #курс #this #фронтенд

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

  • @pomazkovjs
    @pomazkovjs  7 หลายเดือนก่อน +4

    Мой интенсив по JS:
    🔥pomazkovjs-hangman.ru/
    Больше крутого контента:
    🚀 Telegram - t.me/pomazkovjs
    👀 Instagram - instagram.com/pomazkov.js

    • @SergioKornelius
      @SergioKornelius หลายเดือนก่อน

      дизлайк за маленький шрифт. смотрю на телефоне, не фига не видно. в ведь большинство телефонов среди людей имеют разрешение 720p.

  • @johnnyzhuravlev7334
    @johnnyzhuravlev7334 3 หลายเดือนก่อน +13

    Отдельное видео по call, apply, bind будет очень полезным. Спасибо за работу и старания)

  • @user-fg5cd3mv2z
    @user-fg5cd3mv2z 7 หลายเดือนก่อน +38

    Легенда вернулась!
    Твой урок по замыканиям лучший в ютубе)

    • @pomazkovjs
      @pomazkovjs  7 หลายเดือนก่อน +1

      Спасибо!)) 🔥

    • @gregdmitriev2784
      @gregdmitriev2784 6 หลายเดือนก่อน +2

      Лесть, такое себе. Но да - автор молодец. Плюс ещё один блогер, который толково объясняет. Просто и по полочкам.

    • @user-fg5cd3mv2z
      @user-fg5cd3mv2z 6 หลายเดือนก่อน

      @@gregdmitriev2784 лесть не лесть, но мне реально его уроки помогают
      А смотрел я много разных авторов
      Если человек старается, то пусть видит обратную связь

  • @user-vs1tn9br5y
    @user-vs1tn9br5y 7 วันที่ผ่านมา

    Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?

  • @valerjanochka
    @valerjanochka 3 หลายเดือนก่อน +4

    Огроменное тебе спасибище за твой неимоверный труд и время, которое ты тратишь, чтобы снимать такие интересные и суперкачественные ролики. Безумно нравится твоя подача материала: без воды, всё чётко по полочкам и с примерами. Желаю тебе продолжать в том же духе и вдохновлять ребят, начинающих этот нелёгкий путь, идти к своей мечте и не сдаваться).
    Ещё было бы интересно посмотреть видео на такие темы, как Promise, цепочки промисов, асинхронное программирование, HTTP/HTTPS, RESTful API, Prototypes, Event Loop.

    • @pomazkovjs
      @pomazkovjs  3 หลายเดือนก่อน +3

      Большое спасибо за такой приятный комментарий! Буду стараться 🔥

  • @user-tk7qv9rv2c
    @user-tk7qv9rv2c 2 หลายเดือนก่อน

    Спасибо, действительно понятно!

  • @user-sc9tw6bg4g
    @user-sc9tw6bg4g 4 หลายเดือนก่อน

    спасибо за доступный урок

  • @fan.kotenokkote5198
    @fan.kotenokkote5198 7 หลายเดือนก่อน

    Спасибо за видео 😊

  • @user-iy9of1ew8c
    @user-iy9of1ew8c 6 หลายเดือนก่อน

    Это прям огонь 🔥 спасибо.

  • @MaxLebedenko-jy2cb
    @MaxLebedenko-jy2cb 3 หลายเดือนก่อน

    очень качественный материал,спасибо!

  • @alexdreamer11
    @alexdreamer11 7 หลายเดือนก่อน

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

  • @maksymshypytsia5217
    @maksymshypytsia5217 4 หลายเดือนก่อน

    Спасибо очень хороший разбор.

  • @MsDimons123
    @MsDimons123 หลายเดือนก่อน

    Круто, спасибо!

  • @LAMit
    @LAMit 25 วันที่ผ่านมา

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

  • @yulikk3514
    @yulikk3514 3 หลายเดือนก่อน

    Спасибо) Супер!

  • @spiritanri
    @spiritanri 6 หลายเดือนก่อน

    Круто! Спасибо

  • @user-lm9ee1gn5p
    @user-lm9ee1gn5p 6 หลายเดือนก่อน

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

  • @user-ml8hn5kg9e
    @user-ml8hn5kg9e 4 หลายเดือนก่อน

    Крутое видео!!!

  • @survarium8841
    @survarium8841 หลายเดือนก่อน

    Спасибо!

  • @zakhartereshchenko7373
    @zakhartereshchenko7373 7 หลายเดือนก่อน

    Спасибо за видео, очень хорошо разьяснил

  • @alexcorsa6330
    @alexcorsa6330 7 หลายเดือนก่อน

    Спасибо! Делай больше видео!!!!

  • @mew6085
    @mew6085 6 หลายเดือนก่อน

    Полезно. Подписался

  • @anastasiasandu555
    @anastasiasandu555 3 หลายเดือนก่อน

    спасибо за контент =)

  • @prgJkeee
    @prgJkeee 7 หลายเดือนก่อน

    Лайк авансом =), ну и конечно же коммент в поддержку канала! Арсений не забывай про видосы!!! Контент супер!!!

    • @pomazkovjs
      @pomazkovjs  7 หลายเดือนก่อน +1

      Спасибо за поддержку, стараюсь! 💪🏼

    • @prgJkeee
      @prgJkeee 7 หลายเดือนก่อน

      @@pomazkovjs Кстати, интересно, а будет ли про Vue что-то? А то на TH-cam про него очень мало всего (понятно, что из-за React'а, который более используем)

  • @rostyslavkinash5232
    @rostyslavkinash5232 6 หลายเดือนก่อน

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

  • @user-ov8xk7cn9e
    @user-ov8xk7cn9e 25 วันที่ผ่านมา

    Годный контент!

  • @user-xu4ob9pg7e
    @user-xu4ob9pg7e 6 หลายเดือนก่อน

    видео крутое, разбор четкий!

  • @wayfaringstranger2798
    @wayfaringstranger2798 26 วันที่ผ่านมา

    видео полезно!

  • @user-wt6be6gi8x
    @user-wt6be6gi8x 4 หลายเดือนก่อน

    Красота)

  • @2insidefree
    @2insidefree 4 หลายเดือนก่อน

    Отличный контент

  • @defDimych
    @defDimych 4 หลายเดือนก่อน

    Автор, выражаю своё спасибо лайком, и подпиской. Ты мне очень помог разобраться с this!

  • @vitmih380
    @vitmih380 6 หลายเดือนก่อน

    Конечно же лайк

  • @igorsenichev3779
    @igorsenichev3779 7 หลายเดือนก่อน

    Спасибо 👍

  • @TrashTOXICwho
    @TrashTOXICwho 5 หลายเดือนก่อน +1

    Привет, крутые видео. Очень жду видео про асинхронности.

  • @AntonBear
    @AntonBear 23 วันที่ผ่านมา

    Хорошее видео мне помогло

  • @user-xb1jf2ul4w
    @user-xb1jf2ul4w 4 หลายเดือนก่อน +4

    Твои видео всегда дают простое понимание сложных вещей. Спасибо.
    Пили подробный видос про call, apply

  • @shmelactimel6099
    @shmelactimel6099 6 หลายเดือนก่อน

    Привет!
    Спасибо за то что делишься своими знаниями и классную подачу в видео, четко и понятно!)
    Думаю классно будет , если будет roadmap на ютубе, по твоему frontend roadmap там где ты выписал что нужно знать начинающему разработчику)

  • @whoamizy
    @whoamizy 6 หลายเดือนก่อน +2

    Спасибо за видео!

  • @user-hp3up5dp7v
    @user-hp3up5dp7v 5 หลายเดือนก่อน

    Привет! Спасибо за крутые объяснения! Очень хотелось бы разобрать в таком духе промисы, async/await

  • @g999ar
    @g999ar 6 หลายเดือนก่อน

    Особенно круто, что ты разбираешь не попсовые темы

  • @alfeov8251
    @alfeov8251 5 หลายเดือนก่อน

    Хотелось бы услышать про асинхронность в JS в твоем исполнении, очено хорошо объясняешь 🔥🤝

  • @lazys7151
    @lazys7151 7 หลายเดือนก่อน +1

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

    • @user-nf5yc7xz9b
      @user-nf5yc7xz9b 7 หลายเดือนก่อน

      Так и автор пробегается по верхам , найдите канал as for js ,вот там по настоящему глубоко разбирают js

    • @lazys7151
      @lazys7151 7 หลายเดือนก่อน +1

      @@user-nf5yc7xz9b Я уже там подписчик. Проблема того канала заключается в том, что автор уничтожает современный подход к изучению JS. Может быть это и полезно, но что это даёт? Каждый раз на собеседованиях спорить и пытаться объяснять принципиально новую позицию? Это слишком муторно и сложно всё донести идеально правильно. Тем более на этом канале человек дошел до синьорской должности со знаниями абстракций по типу замыканий, контекста и прочей лабуды. Эффективнее всего, как мне кажется, понять эти абстракции и ими апеллировать на собеседованиях. По крайней мере собеседования не будут такими стрессовыми и сложными.

  • @user-jw6dd7ce6u
    @user-jw6dd7ce6u 6 หลายเดือนก่อน

    круто полезный контент

  • @maxfens
    @maxfens 7 หลายเดือนก่อน

    Спасибо за контент! Будет в ближайшем будущем видос про прототипы?

  • @madshox2816
    @madshox2816 5 หลายเดือนก่อน

    Спасибо

  • @anastasiahramcova7200
    @anastasiahramcova7200 6 หลายเดือนก่อน +1

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

  • @Fanta.Bamboocha
    @Fanta.Bamboocha 3 หลายเดือนก่อน

    Комментарий для продвижения, так держать

  • @andrewshalomitsky2184
    @andrewshalomitsky2184 7 หลายเดือนก่อน

    круто!

  • @alex_dudukalo
    @alex_dudukalo 7 หลายเดือนก่อน +2

    Отличный ролик, представляю сколько времени на него ушло :)

    • @pomazkovjs
      @pomazkovjs  7 หลายเดือนก่อน +2

      Спасибо!) Времени ушло действительно много, но я уверен, что все не зря, и этот разбор многим поможет 🙌

  • @katenka_katrusya
    @katenka_katrusya 6 หลายเดือนก่อน

    Спасибо за видео. Для меня это сейчас уже не так страшно, но всё ещё страшно)). Хотелось бы посмотреть подробнее и про call, bind, apply.
    Я первый раз использовала конструктор для создания студентов (домашняя работа, да))), плюс там методы разные, куда я добавляла функции расчёта возраста, на каком курсе студент, полное имя, очень удобно получилось. Код стал чище в разы, легче и понятнее писался код

  • @user-rs9qj7zj5g
    @user-rs9qj7zj5g 6 หลายเดือนก่อน

    Ура, я ждала это видео! Спасибо!

  • @user-cy9vr1lq9f
    @user-cy9vr1lq9f 6 หลายเดือนก่อน

    спасибо

  • @crazymeizy3252
    @crazymeizy3252 3 หลายเดือนก่อน

    Ты топ бро спасибо

  • @artyommanko1575
    @artyommanko1575 7 หลายเดือนก่อน

    Арсений, спасибо огромное за обучающие видео! Всё максимально подробно, интересно и, что самое главное, понятно!

  • @j0v4n1
    @j0v4n1 7 หลายเดือนก่อน

    Молодчина

  • @the_barnab9485
    @the_barnab9485 หลายเดือนก่อน

    Видео показалось мне полезным. Поэтому я, как наставлял Автор, прожал Like и пишу об этом в комментариях..

  • @morenossspunches7852
    @morenossspunches7852 6 หลายเดือนก่อน

    Прекраааасное видео

  • @user-fh7dx7tz4p
    @user-fh7dx7tz4p 5 หลายเดือนก่อน

    Добрый час, спасибо за видео, было бы интересно ролик про Primise и fetch

  • @foxnadir
    @foxnadir 2 หลายเดือนก่อน +1

    18:56 Не из-за того что .forEach вторым аргументом передает undefined в коллбек - внутри него this определяется как undefined. А все из-за того, что любая функция определенная в JavaScript по умолчанию является методом объекта (ВНИМАНИЕ!) window. И this тут ссылается именно к глобальному объекту window и ищет там свойство lastName. Вот оно там не определено и возвращает undefined. Это легко проверить написав в глобальной области this.lastName = "Виндоуское Иванов";

    • @foxnadir
      @foxnadir 2 หลายเดือนก่อน

      22:10 а внутри setTimeout *this* не определятся все потому что setTimeout изначально является методом windows объекта (как и было сказано вначале). Он тоже ссылается в глобальный объект своим this'ом.

    • @user-oe9wl1zq4o
      @user-oe9wl1zq4o 2 หลายเดือนก่อน +1

      "Это легко проверить написав в глобальной области this.lastName = "Виндоуское Иванов";" - или в самой функции выводить просто this. Можно еще добавить вторым параметром undefined и увидеть что ничего не поменяется, a если добавить другой объект, то поменяется только для logFullNames1.

  • @AndsViolin
    @AndsViolin 7 หลายเดือนก่อน +3

    Спасибо за твой канал. Благодаря тебе я снова начал программировать спустя 3 года

    • @pomazkovjs
      @pomazkovjs  7 หลายเดือนก่อน +1

      Воу, огонь! Рад, что помог найти мотивацию и вдохновение)

  • @galaktik9714
    @galaktik9714 6 หลายเดือนก่อน

    ждем подробное объяснение про call,bind и apply также хотелось бы увидеть объяснение про конструкторы и классы.

  • @MsZhelezny
    @MsZhelezny หลายเดือนก่อน

    Поддержка!

  • @MaximImmersion
    @MaximImmersion 6 หลายเดือนก่อน

    Ждем видео про call и apply

  • @user-iq3qf7py7o
    @user-iq3qf7py7o 6 หลายเดือนก่อน

    супер

  • @user-hm5dz5yj4n
    @user-hm5dz5yj4n หลายเดือนก่อน

    Отдельное видео по call, apply, bind пожалуйста.

  • @lex9497
    @lex9497 6 หลายเดือนก่อน

    У тебя очень крутые видео, и очень понятные, можешь пожалуйста сделать видео про методы массивов, строк и объектов. Буду очень благодарен)

  • @BaraBaranym
    @BaraBaranym 7 หลายเดือนก่อน +1

    Круть, еще бы про Event Loop, prototype, async 😔

  • @srjp4777
    @srjp4777 6 หลายเดือนก่อน

    суперские объяснения, смотрю уже третий видос и это один из лучших каналов по js

  • @coreyes139
    @coreyes139 4 หลายเดือนก่อน +1

    Про промисы хотелось бы разбор и про асинхронность

  • @andrewcanady3054
    @andrewcanady3054 3 หลายเดือนก่อน

    Привет. Изучаю сейчас js. Я на пути к фронтенд разработчику ахахах) Из многих видосов на ютубе по теории программирования очень мало таких видосов, которые хорошо сконструированы. То есть мало видосов, в которых их авторы обьъясняют всё поэтапно. А у тебя всё хорошо сконстурировано в видео и понятно всё от начала и до конца. Спасибо за твою работу)

  • @xtray272
    @xtray272 6 หลายเดือนก่อน +2

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

    • @user-yp2tk4yn1b
      @user-yp2tk4yn1b 5 หลายเดือนก่อน

      и не устраиваются. АХАХАХАХАХА. Рынок переполнен настолько, что устроиться на джуна вообще нереально

  • @MyDagir
    @MyDagir 5 หลายเดือนก่อน

    полезное видео

  • @Liunamme
    @Liunamme 7 หลายเดือนก่อน +3

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

    • @pomazkovjs
      @pomazkovjs  7 หลายเดือนก่อน +2

      Идеальный тайминг 🔥

  • @Liunamme
    @Liunamme 7 หลายเดือนก่อน +1

    Ждем видео про промисы и прототипы

  • @maxet2374
    @maxet2374 6 หลายเดือนก่อน +1

    спасибо за видос по замыканиям - я хоть через год в разработке норм понял. сделай плиз видос с примерами call bind apply

    • @pomazkovjs
      @pomazkovjs  6 หลายเดือนก่อน +1

      Спасибо за коммент! Сделаю 💪🏻

  • @ynesennye_milom
    @ynesennye_milom 3 หลายเดือนก่อน +1

    Спасибо большое, это лучшее видео про this💐

  • @kotrvnwork6665
    @kotrvnwork6665 6 หลายเดือนก่อน

    Видео супер! Понятно все! По полочкам!

  • @yuriilee6077
    @yuriilee6077 6 หลายเดือนก่อน

    Круто! Объясни плз call и apply. Геттеры и Сеттеры тоже так же хотелось бы увидеть)

  • @vgshenshin
    @vgshenshin 6 หลายเดือนก่อน

    Круто, я всё понял 👍 неплохой пример с setTimeout и event loop, мне понравился🔥

  • @user-kp5og5so7f
    @user-kp5og5so7f 7 หลายเดือนก่อน

    Твои видео всегда дают простое понимание сложных вещей. Спасибо.

  • @shoavazshoislomov3105
    @shoavazshoislomov3105 4 หลายเดือนก่อน

    круто! когда разбор массивов?)

  • @goshan3170
    @goshan3170 4 หลายเดือนก่อน

    Спасибо, хочу к тебе на стажировку)))

  • @davit21.
    @davit21. 6 หลายเดือนก่อน

    Вы очень ясно и понятно объясняйте
    спасибо за хороший контент❣

  • @casha00048
    @casha00048 6 หลายเดือนก่อน

    Прекрасно
    Понятно и без воды
    Спасибо)

  • @user-lj5sf7hs5f
    @user-lj5sf7hs5f 5 หลายเดือนก่อน

    Красава!!! Давай жги дальше. Жду новых видосов

  • @sadasd3826
    @sadasd3826 5 หลายเดือนก่อน +1

    Хотелось бы уточнить за пример вложенной функции на 5:38 ,myFunction не берет контекст из myFunction1,так как это противоречит тому,что контекст определяется в зависимости от вызова функции.
    Если вызывается просто функция без каких-либо доп методов ,new или dot нотации то по умолчанию this будет глобальным обьектом в нестрогом режиме.Вот например,что об пишется :
    Вложенные функции не наследуют значение this от внешних функций. Значение this в вложенной функции определяется контекстом, в котором она вызывается. Если вложенная функция вызывается как метод, то ее значение this будет объектом, на котором она вызывается. Если вложенная функция (т.е. не стрелочная функция) вызывается как функция, то ее значением this будет или глобальный объект (в нестрогом режиме), или undefined (в строгом режиме).
    Пример 1 :
    let o = { // Объект о
    m: function() { //метод m обьекта
    let self = this; // Сохранить значение this в переменной
    this === о // => true: this является объектом о
    f() ; //Теперь вызвать вспомогательную функцию f ()
    function f () { //Вложенная функция f
    this === о // =>false: this является глобальным объектом или undefined
    self === о // true: self является внешним значением this
    }
    }
    };
    o.m(); //Вызвать метод m на объекте о
    А если бы myFunction брала бы контекст из myFunction1,то у нас вышло бы что f брала бы контекст из анонимной функции присвоенной идентификатору m,и тогда бы эта функция ссылалась бы на сам обьект o ,а не на глобальный обьект

    • @foxnadir
      @foxnadir 2 หลายเดือนก่อน

      Чуть-чуть неправильно, но в целом неплохо. Читай мой коммент снизу

    • @sadasd3826
      @sadasd3826 2 หลายเดือนก่อน

      @@foxnadir ,Во -первых,то ,что ты написал ни как не противоречит моему.Во-вторых,я все правильно написал,в том числе к глобальному обьекту относится и windows в среде браузера.Но нельзя говорить за это постоянно,так как в той же Node уже не будет никакого windows)

  • @IgorBerezhnoy-md3ir
    @IgorBerezhnoy-md3ir 4 หลายเดือนก่อน

    Спасибо за урок! Ждём ещё больше твоих крутых видео!🔥🔥🔥🔥🔥🔥🔥🔥🔥

  • @Aleksa013
    @Aleksa013 2 หลายเดือนก่อน

    Очень здорово объясняешь! Спасибо тебе!!

  • @user-ey2wx2fu7h
    @user-ey2wx2fu7h 2 หลายเดือนก่อน

    просто красавчик, оч крутые видео, топ контент)
    не останавливайся

  • @alianmanpi35
    @alianmanpi35 2 หลายเดือนก่อน

    Спасибо большое за Ваши видео, они очень помогают глубже понимать материал.

  • @kamilatuleubayeva4147
    @kamilatuleubayeva4147 7 หลายเดือนก่อน +1

    Обожаю ваше объяснение, но я не смотрела еще первую часть, так что побежала смотреть ее😂😅 спасибо Вам за видеооо😍🔥

    • @pomazkovjs
      @pomazkovjs  7 หลายเดือนก่อน +1

      Спасибо! Приятного просмотра!)

  • @user-lm9nr4eo2f
    @user-lm9nr4eo2f 7 หลายเดือนก่อน +4

    Спасибо. Давай про нестандартный js. Например давай про генераторы, или про использование символов на практике?

  • @EvilGazz
    @EvilGazz 7 หลายเดือนก่อน

    Видео однозначно полезное, и подача материала на 5+

  • @user-bn6fl5yp2d
    @user-bn6fl5yp2d 6 หลายเดือนก่อน

    Офигенное видео) спасибо😍 было бы интересно послушать про классы

  • @ThePro_0001
    @ThePro_0001 5 หลายเดือนก่อน

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

  • @user-dq3rc1xu7b
    @user-dq3rc1xu7b 2 หลายเดือนก่อน

    Крутое объяснение! Спасибо.

  • @many_men
    @many_men 6 หลายเดือนก่อน

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

  • @user-yk5wq6xl7w
    @user-yk5wq6xl7w 6 หลายเดือนก่อน

    Жду видео про Рекурсию

  • @sezergm7066
    @sezergm7066 2 หลายเดือนก่อน

    Одно из лучших видео на ютубе про 'this' в js

  • @shuler4008
    @shuler4008 5 หลายเดือนก่อน

    Давай про промисы js)