Тёмный

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

WebDev с нуля. Канал Алекса Лущенко
Просмотров 54 тыс.
50% 1

Мои курсы itgid.info/course
JS 2.0 : itgid.info/course/javascript-2
Курс ООП JavaScript itgid.info/course/javascript-2
Помощь Насте itgid.info/site/nastya
Инстаграмм мамы Насти: maria_gaidu...
Карта Приватбанк мамы Насти (Мария Гайдученко): 5168755420228781
Телеграмм канал JavaScript Rules: t.me/jsrules
Объектно-ориентированное программирование в JavaScript. Геттеры и сеттеры в javascript. Приватные и защищенные свойства JavaScript.

Опубликовано:

 

22 мар 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 88   
@user-bh5kq1dp8k
@user-bh5kq1dp8k 3 года назад
Автор видео: "Консоль лох" Консоль: "Ачё всмысле..."
@user-glory-of-ukraine
@user-glory-of-ukraine 3 года назад
ахахах убило)))
@galandec2000
@galandec2000 3 года назад
Александр, теска, как всегда супер. Сам много чего учил по его видео, рекомендую! просто дополню чуть, вдруг кому на самом деле будет интересно как оно из коробки работает.))) сам 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, когда вы понимаете это, дебажить код, одна радость.)))
@user-rl8hs4mm7x
@user-rl8hs4mm7x 2 года назад
Очень круто, что видео живое. Когда видишь, что и опытный программист может опечататься и чуть потупить, это поддерживает. Ну, и интрига, коллизии сюжета))) Прям затаив дыхание - в чём же дело, почему событие не событие?..
@aleksandr95
@aleksandr95 Год назад
Невероятно доступная подача информации. Большое спасибо!
@woodDacha
@woodDacha 3 года назад
Полезно, понятно. Автору успехов!
@a_allenchik3465
@a_allenchik3465 2 года назад
Спасибо! Очень доступно объясняете
@lilitavetisyan2302
@lilitavetisyan2302 3 года назад
очень достаточно,,Спасибо вам 🖐👍💚
@jeb_7749
@jeb_7749 4 года назад
Офигеть, когда не читаешь в какой-то книжке с примерами, а смотришь видео с объяснениями от человека, который не только знает, но и любит, что делает, то сразу становится всё настолько понятно, что начинаешь думать:"Как я сам не догадался? Это же такой примитив!"
@ivan7094
@ivan7094 2 года назад
Алекс, спасибо за хорошее объяснение!
@CatWoman-sr4pk
@CatWoman-sr4pk Год назад
спасибо большое за видео! теперь все наконец стало понятно, где это применяется и как это использовать!
@unit_lost
@unit_lost 4 года назад
Отличное разъяснение.
@yarik83men51
@yarik83men51 4 года назад
Полезно. Спасибо. Будет продолжение ООП в JavaScript? У Вас талант правильно объяснить. Очень жду Node JS...
@Roner1kk
@Roner1kk 4 года назад
ЭТО как раз то что я искал! Спасибо! Очень интересует информация начет елементов DOM и в чем отличие NODE list, HTML collection , etc.... Возможно у Вас уже есть видео на данную тему?
@nikitazzz7636
@nikitazzz7636 4 года назад
В описании при переходе по ссылке в ооп js переходит в js 2.0, так, чтобы знали. Огромное спасибо за уроки, очень полезно. Приятный голос и доходчиво объясняете
@user-je4ni6yj4g
@user-je4ni6yj4g 4 года назад
Самые толковые уроки! Разжёвано замечательно!
@itgid
@itgid 4 года назад
спасибо!
@romanroman4308
@romanroman4308 3 года назад
спасибо за контент!
@user-wv9qc6vg2i
@user-wv9qc6vg2i Год назад
Большое спасибо за простое объяснение "на пальцах",без сложных формулировок👍👍👍 просмотрел кучу видео на Ютубе, у всех как под копирку непонятное на непонятном языке🤦‍♂️
@funcomedy2
@funcomedy2 6 месяцев назад
Алекс, спасибо за хорошее объяснение! 👍🏻
@UkrNotes
@UkrNotes 2 года назад
Большое спасибо за видео
@unknown.6914
@unknown.6914 7 месяцев назад
спасибо за урок
@hrantharuthiunian1011
@hrantharuthiunian1011 3 года назад
Спасибо !!
@user-up9zq1nw4n
@user-up9zq1nw4n 2 года назад
Спасибо!
@moscow8881
@moscow8881 Год назад
Спасибо интересно, надо будет сделать лабораторную работу на эту тему с более глубокой проработкой
@alexkogotko3981
@alexkogotko3981 4 года назад
Спасибо
@user-he7sz9iw1j
@user-he7sz9iw1j 4 года назад
как раз новичок, и конечно же, this было непонятным. Спасибо за Ваши видео!)
@itgid
@itgid 4 года назад
рад!
@firdavsdadakhanov5087
@firdavsdadakhanov5087 4 года назад
Очень полезно) Постарайтесь в следующий раз увеличить размер шрифта на программе (vs code)
@user-qs3zk1se5r
@user-qs3zk1se5r 4 года назад
Тема this раскрыта не полностью
@uzver3787
@uzver3787 3 года назад
Я когда читал learn JS,но не понял, что значит вызов this через точку? Там какие-то переносы идут и он теряется из-за этого и выдаёт ошибку...ссылочный тип this,так называется пункт. Я пишу с недавнего времени log +tab, чтобы не набирать каждый раз одно и то же, может кому-то пригодится,кто не знал. Спасибо за урок! JS, this, it's simple.
@themargolan
@themargolan Год назад
Ошибка в отсутствии All в конце querySelector, код сработал бы с querySelectorAll. Только учусь, но приятно что УЖЕ вижу ошибки. Всем успехов, js классный
@user-pq8jm7kk7h
@user-pq8jm7kk7h 2 года назад
да прибудет с нами "ЗЫС")
@user-qx7bc9dz5p
@user-qx7bc9dz5p Год назад
Дякую за це пояснення! Лайк.
@MrVIPKent
@MrVIPKent Год назад
Дякую за відео, болюча тема для мене
@romanr5962
@romanr5962 2 года назад
Всем привет! Правильно ли я понимаю, что this не может ссылаться на функцию, внутри которой находится? Если да, то почему , ведь функция является обьектом в JS?
@3anuda
@3anuda 4 года назад
Александр, спасибо. Подсел на Ваши уроки после первого же просмотра, жаль пока больше смотрю (мало практики). А можно в двух словах(строчках кода) как по повторному клику возвращать параграфу первоначальный цвет и так по кругу. Заранее благодарен.
@itgid
@itgid 4 года назад
classList.toggle
@3anuda
@3anuda 4 года назад
@@itgid Спасибо, теперь хоть знаю куда копать)
@RossieeissoR
@RossieeissoR 2 года назад
Было бы полезно сказать, почему именно this в контексте функции является объектом window. Потому что abc() фактически равно window.abc(). Но я из видео ничерта не понял, если честно. Либо это неполное объяснение и где-то есть продолжение...
@user-vb1sk2sr9q
@user-vb1sk2sr9q 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 года назад
по моему, в данном случае, const f не может быть стрелочной функцией. Только function declaration
@user-nb7cv5px1v
@user-nb7cv5px1v 4 года назад
Спасибо за ролик. Похвалюсь, смотрел внимательно, и сразу понял где ошибка и когда 'red' без кавычек и когда "не срабатывала" функция. Это потому что мысленно писал код вместе с Александром. У вас очень хорошие курсы.
@user-iz5ce4hy4s
@user-iz5ce4hy4s 4 года назад
Здравствуйте, у меня вопрос почему вы вызвали функцию abc без скобок
@ImmortalBest
@ImmortalBest 4 года назад
без скобок не вызывается функция, а передается ссылка на саму функцию, чтобы она вызывалась по событию, никто не знает когда совершится допустим клик, а скобки означают немедленный вызов... чтобы было наглядней, можно не передавать ссылку на функцию, а завернуть её вызов в анонимную функцию, а саму анонимную функцию бросить на событие
@ImmortalBest
@ImmortalBest 4 года назад
addEventListener может навесить несколько обработчиков событий на элемент, а onclick перезапишет
@user-tr8xi3ik3c
@user-tr8xi3ik3c 3 года назад
И руководствуясь принципом наименьшей неожиданности лучше всегда использовать addEventListener. Это и в правду так. Стоит также добавить, что если вначале странице будет стоять 'use strict', то this в консоли вернет не window, а undefind. Опять же исходя из того же вышеуказанного принципа будет легче управлять поведением.
@superstarro
@superstarro Год назад
Это вероятно что то очень страшное и странное , это зЫс, уууу бойтесь если вы зашли посмотреть это видео) Это же просто this , ау, что вообще не ясно или не понятно , стоит просто немного посидеть с объектами и все будет очень ясно и доступно) 😊 😁 Да можно сказать про функции объекты классы прототипы , но для начало , это как бы все объекты, даже у функции есть методы которые являются объектом, хотя почему даже , как бы есть, нужно просто оценить все более внимательно ) по этой причине я не буду говорить о сложных вещах , а просто объекты 😊
@oleksiykurylyuk4696
@oleksiykurylyuk4696 4 года назад
а если вызвать this без контекста, но в строгом режиме? тогда this будет равно undefined?
@user-nt7sd9yq6c
@user-nt7sd9yq6c 4 года назад
Да
@user-mo5gu9oo9h
@user-mo5gu9oo9h 2 года назад
Какая у вас тема в vs code?
@dimageorgiev5798
@dimageorgiev5798 4 года назад
👨‍💻💪🚀😎 четко
@user-qe9zw4yj1n
@user-qe9zw4yj1n 2 года назад
Просто так document.querySelector не работает - его нужно вставлять в функцию запуска на странице - window.onload = function(){ ... };
@sqqa108
@sqqa108 4 года назад
у меня напрямую работает document.querySelectorAll('p').addEventListener('click', abc); через ALL
@r45her
@r45her 4 года назад
Да ты что. Правда чтоли?)
@shertskoff6852
@shertskoff6852 4 года назад
Ого! Я незнал что this имеет так много свойств. Это для меня открытие огромное
@Kaiserd345
@Kaiserd345 3 года назад
Это суждение не совсем верно, this динамичен. Это не свойства this, это свойства объекта на который он указывает, в данном случае window. Если он укажет на другой объект то свойства могут быть другими.
@A_A_A182
@A_A_A182 Год назад
Спасибо за урок. Единственное, как будто не хватает работы this со стрелочными функциями
@Xymus1737
@Xymus1737 10 месяцев назад
в стрелочных функциях нет this
@ammdli771
@ammdli771 2 года назад
Всё равно не понял. Можно пожалуйста в двух словах сказать на что указывает this? На окружающий его объект?
@ammdli771
@ammdli771 2 года назад
то есть внутри того объекта на котором он находится?
@icegouse
@icegouse Год назад
Как быть с globalThis?
@callpack96
@callpack96 4 года назад
«консоль лох»
@itgid
@itgid 4 года назад
дебаг только алертами!
@revoluxe
@revoluxe Год назад
Консоле лог!
@gromslaive4641
@gromslaive4641 3 года назад
Учитель сам завис 10:48
@user-oe1nr1lq1h
@user-oe1nr1lq1h 2 года назад
2ва приклади і ті тіки через івенти. я хотівби більше прикладів без використання DOM
@rpnXN
@rpnXN Год назад
конечно не бойтесь, this это атавизм современных фреймворков)))
@user-ij6bm7my3f
@user-ij6bm7my3f 2 года назад
+
@realsteel9922
@realsteel9922 2 года назад
Я Умар Искендер ты здесь
@user-vp3jp7mi1f
@user-vp3jp7mi1f Год назад
Очень интересно, но ничего не понятно, надо это js сначала изучать
@user-tg6wg3ji8l
@user-tg6wg3ji8l 4 года назад
Не хватило самой нужной информации.. ООП, стрелочные функции
@ArtinoBear
@ArtinoBear 3 года назад
Почему консоль лох ? 5:10
@MrSvitS1337
@MrSvitS1337 3 года назад
ахахахаххахаха
@shamandigital
@shamandigital 3 года назад
Потому что человек из Украины. Многие ''г'' так произносят.
@ulyapro4464
@ulyapro4464 3 года назад
спасибо за видео но ты громко пыхтишь
@mikhailterskov1409
@mikhailterskov1409 10 месяцев назад
по прежнему ничего не понятно, спасибо -_-
@user-yh4fb5bz5h
@user-yh4fb5bz5h 4 года назад
Не обманывай я не боюсь тхис Я боюсь перемен в России
@itgid
@itgid 4 года назад
ну судя по имени - тхис это действительно что-то плохое.
@user-yh4fb5bz5h
@user-yh4fb5bz5h 4 года назад
@@itgid я имею ввиду this
@user-kq2yo3my9l
@user-kq2yo3my9l 4 года назад
@@user-yh4fb5bz5h та то он так шутит специфично. Ему уже лет 50, не требуй много)
@user-yh4fb5bz5h
@user-yh4fb5bz5h 4 года назад
@@user-kq2yo3my9l Американская пропаганда поглатила тебя через купленный трампом ВКонтакте
@tvorogovmaxim
@tvorogovmaxim 4 года назад
Спасибо за видео. Но ПОЖАЛУЙСТА НЕ ПРОИЗНОСИТЕ «ЗЫС»!!! Просто кровь из ушей идет. В крайнем случае, говорите «ВИС»....
@ITentrepreneur
@ITentrepreneur 3 года назад
если на то пошло, то корректнее уже произнести «ДИС»
@vadimfrunza7897
@vadimfrunza7897 4 года назад
Скучно, монотонно. Если у Вас и курсы такие то мне жаль учеников.
@user-iq9ll8lz9m
@user-iq9ll8lz9m 4 года назад
это же не комедийный сериал, главное как обьясняется тема...да и сам голос у него не скучный, я не знаю, вам надо наверное чтобы Лига Смеха программирование преподавала
@shamandigital
@shamandigital 3 года назад
До меня всё дошло - это главное. Сюда не веселится приходят.
@user-hp8gx9nb4z
@user-hp8gx9nb4z 2 года назад
Как же бесит твоё дыхание в микрофон, а в остальном спасибо за урок
Далее
Khabib came to check on Poirier 👀 #UFC302
00:25
Просмотров 377 тыс.