Не бойтесь THIS в JS

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

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

  • @ЭмильМахмудов-м5в
    @ЭмильМахмудов-м5в 3 ปีที่แล้ว +49

    Автор видео: "Консоль лох"
    Консоль: "Ачё всмысле..."

  • @IT_psychopath
    @IT_psychopath 3 ปีที่แล้ว +35

    Александр, теска, как всегда супер. Сам много чего учил по его видео, рекомендую!
    просто дополню чуть, вдруг кому на самом деле будет интересно как оно из коробки работает.)))
    сам js, он имеет лексическую область видимости, а this был создан, чтоб воссоздать то, что будет иметь динамическую область видимости! this, это не игрушка! перед тем как это использовать, сто раз подумайте - "а надо ли нам тут динамическая область видимости?". вообще, лучше изучите область видимости js, перед тем как писать код на проф уровне! просто var к примеру, это не устаревшая система переменных! это опять же инструмент, который работает в функциональной области видимости. а let, это блочная область видимости! а const надо использовать, когда у вас переменная не изменяема, в примере Александра, обращение к элементу дома, логичнее писать через const! ну а let на деле выглядит вот так { let a = 2; print(a);} это блочная область видимости, вот так ее правильно используют. за пределами фигурных скобок, переменная a = 2 не видна! вот для этого и создали let, чтоб не плодить глобальные переменные. для остального используется var. к примеру в цикле for если вы напишите let i = 0; а не var i = 0; , при каждой итерации цикла, будет создаваться переменная let i = значение, это все будет создаваться в памяти, а не перезаписываться i = 0! а в случаи с var, перезаписывается значение var. вы никогда не сможете писать замыкания, если не поймете как работает область видимости в js! this используйте только тогда, когда вам реально необходимо поменять глобальную область с лексической на динамическую! иначе, попадете на кучу багов и вздернитесь исправлять их.))) надеюсь кому-то будет полезным!)) сложного в этом, вообще нет ничего!))) есть еще такое как правосторонний поиск, и левосторонний. правый всегда будет выдавать вам undefined, когда вы понимаете это, дебажить код, одна радость.)))

  • @АннаАндреевна-ь1и
    @АннаАндреевна-ь1и 2 ปีที่แล้ว +9

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

  • @Александр-е5в9н
    @Александр-е5в9н 4 ปีที่แล้ว +5

    Самые толковые уроки! Разжёвано замечательно!

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

      спасибо!

  • @CatWoman-sr4pk
    @CatWoman-sr4pk ปีที่แล้ว +1

    спасибо большое за видео! теперь все наконец стало понятно, где это применяется и как это использовать!

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

    Невероятно доступная подача информации. Большое спасибо!

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

    Полезно, понятно. Автору успехов!

  • @АркадийПаровозов-д8и
    @АркадийПаровозов-д8и 2 ปีที่แล้ว

    Большое спасибо за простое объяснение "на пальцах",без сложных формулировок👍👍👍 просмотрел кучу видео на Ютубе, у всех как под копирку непонятное на непонятном языке🤦‍♂️

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

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

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

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

  • @АнастасіяВащенко-м2ъ
    @АнастасіяВащенко-м2ъ 4 ปีที่แล้ว +5

    как раз новичок, и конечно же, this было непонятным. Спасибо за Ваши видео!)

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

      рад!

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

    Полезно. Спасибо. Будет продолжение ООП в JavaScript? У Вас талант правильно объяснить. Очень жду Node JS...

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

    ЭТО как раз то что я искал! Спасибо! Очень интересует информация начет елементов DOM и в чем отличие NODE list, HTML collection , etc.... Возможно у Вас уже есть видео на данную тему?

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

    очень достаточно,,Спасибо вам 🖐👍💚

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

    Дякую за відео, болюча тема для мене

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

    Отличное разъяснение.

  • @unknown.6914
    @unknown.6914 ปีที่แล้ว

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

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

    Ошибка в отсутствии All в конце querySelector, код сработал бы с querySelectorAll. Только учусь, но приятно что УЖЕ вижу ошибки. Всем успехов, js классный

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

    Алекс, спасибо за хорошее объяснение!

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

    Это вероятно что то очень страшное и странное , это зЫс, уууу бойтесь если вы зашли посмотреть это видео)
    Это же просто this , ау, что вообще не ясно или не понятно , стоит просто немного посидеть с объектами и все будет очень ясно и доступно) 😊 😁
    Да можно сказать про функции объекты классы прототипы , но для начало , это как бы все объекты, даже у функции есть методы которые являются объектом, хотя почему даже , как бы есть, нужно просто оценить все более внимательно ) по этой причине я не буду говорить о сложных вещах , а просто объекты 😊

  • @Denn-t5t
    @Denn-t5t 2 ปีที่แล้ว

    Дякую за це пояснення! Лайк.

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

    Большое спасибо за видео

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

    Офигеть, когда не читаешь в какой-то книжке с примерами, а смотришь видео с объяснениями от человека, который не только знает, но и любит, что делает, то сразу становится всё настолько понятно, что начинаешь думать:"Как я сам не догадался? Это же такой примитив!"

  • @ЕгорБычков-ю7е
    @ЕгорБычков-ю7е 3 ปีที่แล้ว +3

    да прибудет с нами "ЗЫС")

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

    спасибо за контент!

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

    Было бы полезно сказать, почему именно this в контексте функции является объектом window. Потому что abc() фактически равно window.abc().
    Но я из видео ничерта не понял, если честно. Либо это неполное объяснение и где-то есть продолжение...

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

    Спасибо интересно, надо будет сделать лабораторную работу на эту тему с более глубокой проработкой

  • @АлексейБабыкин-ц5е
    @АлексейБабыкин-ц5е 4 ปีที่แล้ว +8

    Тема this раскрыта не полностью

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

    Я когда читал learn JS,но не понял, что значит вызов this через точку? Там какие-то переносы идут и он теряется из-за этого и выдаёт ошибку...ссылочный тип this,так называется пункт.
    Я пишу с недавнего времени log +tab, чтобы не набирать каждый раз одно и то же, может кому-то пригодится,кто не знал.
    Спасибо за урок!
    JS, this, it's simple.

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

    Спасибо !!

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

    Александр, спасибо. Подсел на Ваши уроки после первого же просмотра, жаль пока больше смотрю (мало практики). А можно в двух словах(строчках кода) как по повторному клику возвращать параграфу первоначальный цвет и так по кругу. Заранее благодарен.

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

      classList.toggle

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

      @@itgid Спасибо, теперь хоть знаю куда копать)

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

    Всем привет! Правильно ли я понимаю, что this не может ссылаться на функцию, внутри которой находится? Если да, то почему , ведь функция является обьектом в JS?

  • @пСінчукД.О
    @пСінчукД.О 2 ปีที่แล้ว

    Какая у вас тема в vs code?

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

    addEventListener может навесить несколько обработчиков событий на элемент, а onclick перезапишет

    • @ЧеловексТопором
      @ЧеловексТопором 4 ปีที่แล้ว +4

      И руководствуясь принципом наименьшей неожиданности лучше всегда использовать addEventListener. Это и в правду так.
      Стоит также добавить, что если вначале странице будет стоять 'use strict', то this в консоли вернет не window, а undefind. Опять же исходя из того же вышеуказанного принципа будет легче управлять поведением.

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

    Как быть с globalThis?

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

    Очень полезно) Постарайтесь в следующий раз увеличить размер шрифта на программе (vs code)

  • @ЕвгенийВинников-б4л
    @ЕвгенийВинников-б4л 3 ปีที่แล้ว

    Подскажите, если вызвать код
    let p = document.querySelector('p');
    const f = ()=>{
    console.log(this)
    return this.style.background = 'red';
    }
    p.onclick = f;
    то, как сделать так, что бы this ссылался не на window,а на p

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

      по моему, в данном случае, const f не может быть стрелочной функцией. Только function declaration

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

    Ого! Я незнал что this имеет так много свойств. Это для меня открытие огромное

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

      Это суждение не совсем верно, this динамичен. Это не свойства this, это свойства объекта на который он указывает, в данном случае window. Если он укажет на другой объект то свойства могут быть другими.

  • @user-avmpapus
    @user-avmpapus 3 ปีที่แล้ว

    Просто так document.querySelector не работает - его нужно вставлять в функцию запуска на странице - window.onload = function(){ ... };

  • @НикитаЛогинов-и6в
    @НикитаЛогинов-и6в 4 ปีที่แล้ว +2

    Здравствуйте, у меня вопрос почему вы вызвали функцию abc без скобок

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

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

  • @АндрейПоляков-е5н
    @АндрейПоляков-е5н 4 ปีที่แล้ว +1

    Спасибо за ролик. Похвалюсь, смотрел внимательно, и сразу понял где ошибка и когда 'red' без кавычек и когда "не срабатывала" функция. Это потому что мысленно писал код вместе с Александром. У вас очень хорошие курсы.

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

    Спасибо за урок. Единственное, как будто не хватает работы this со стрелочными функциями

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

      в стрелочных функциях нет this

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

    Всё равно не понял. Можно пожалуйста в двух словах сказать на что указывает this? На окружающий его объект?

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

      то есть внутри того объекта на котором он находится?

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

    а если вызвать this без контекста, но в строгом режиме? тогда this будет равно undefined?

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

    Спасибо

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

    👨‍💻💪🚀😎 четко

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

    у меня напрямую работает document.querySelectorAll('p').addEventListener('click', abc); через ALL

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

      Да ты что. Правда чтоли?)

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

    «консоль лох»

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

      дебаг только алертами!

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

    Консоле лог!

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

    Учитель сам завис 10:48

  • @ДмитроКвітчатий-д7п
    @ДмитроКвітчатий-д7п 2 ปีที่แล้ว

    2ва приклади і ті тіки через івенти.
    я хотівби більше прикладів без використання DOM

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

    конечно не бойтесь, this это атавизм современных фреймворков)))

  • @АлексейЛеонов-е1ф
    @АлексейЛеонов-е1ф 2 ปีที่แล้ว

    Очень интересно, но ничего не понятно, надо это js сначала изучать

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

    Я Умар Искендер ты здесь

  • @ЕгорБелокриницкий
    @ЕгорБелокриницкий 4 ปีที่แล้ว +1

    Не хватило самой нужной информации.. ООП, стрелочные функции

  • @Медитациймузыкс
    @Медитациймузыкс 2 ปีที่แล้ว

    +

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

    Почему консоль лох ? 5:10

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

      ахахахаххахаха

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

      Потому что человек из Украины. Многие ''г'' так произносят.

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

    по прежнему ничего не понятно, спасибо -_-

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

    спасибо за видео но ты громко пыхтишь

  • @БольшойОтец-з2ы
    @БольшойОтец-з2ы 4 ปีที่แล้ว +1

    Не обманывай я не боюсь тхис
    Я боюсь перемен в России

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

      ну судя по имени - тхис это действительно что-то плохое.

    • @БольшойОтец-з2ы
      @БольшойОтец-з2ы 4 ปีที่แล้ว

      @@itgid я имею ввиду this

    • @БорисБритва-т8р
      @БорисБритва-т8р 4 ปีที่แล้ว

      @@БольшойОтец-з2ы та то он так шутит специфично. Ему уже лет 50, не требуй много)

    • @БольшойОтец-з2ы
      @БольшойОтец-з2ы 4 ปีที่แล้ว

      @@БорисБритва-т8р Американская пропаганда поглатила тебя через купленный трампом ВКонтакте

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

    Спасибо за видео. Но ПОЖАЛУЙСТА НЕ ПРОИЗНОСИТЕ «ЗЫС»!!! Просто кровь из ушей идет. В крайнем случае, говорите «ВИС»....

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

      если на то пошло, то корректнее уже произнести «ДИС»

  • @ШайтанЛабмем
    @ШайтанЛабмем 3 ปีที่แล้ว

    Как же бесит твоё дыхание в микрофон, а в остальном спасибо за урок

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

    Скучно, монотонно. Если у Вас и курсы такие то мне жаль учеников.

    • @АндрейБочарников-х5ъ
      @АндрейБочарников-х5ъ 4 ปีที่แล้ว +3

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

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

      До меня всё дошло - это главное. Сюда не веселится приходят.

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

    Алекс, спасибо за хорошее объяснение! 👍🏻

  • @ВикторияИльина-н7о
    @ВикторияИльина-н7о 3 ปีที่แล้ว

    Спасибо!