JavaScript - от this до прототипов | Юрий Федоренко

Поділитися
Вставка
  • Опубліковано 11 лип 2024
  • Если нужно что-то понять про Front-end специалиста с двух вопросов, надо попросить его рассказать две вещи:
    1 - Про this в Javascript
    2 - Про прототипы в Javascript
    Это темы, которые невозможно обойти на качественном собеседовании по Javascript.
    Справочник по Front-end - itwiki.dev/front-end
    Канал Юрия в Телеграме: goo.gl/UDDPjd
    И дополнительный бонус на тему js: статья Дмитрия Сошникова goo.gl/MRn3AH
    00:00 - Вступление
    0:25 - Про this в Javascript
    0:58 - Динамичность this
    2:10 - Чему и когда будет равен this
    3:59 - Прототипное наследование
    5:50 - Зачем нужны прототипы
    6:59 - Функции как объект
    11:33 - Вызов функции с помощью оператора new
    12:47 - Послесловие
    Компьютерная Школа Hillel
    Сайт: ithillel.ua
    Facebook: / hillel.it.school
    Instagram: / hillel_itschool

КОМЕНТАРІ • 111

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

    Спасибо друг, лучшее explanation 👏

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

      Раді, що стали в нагоді 💙

  • @alexandertsvetkov6120
    @alexandertsvetkov6120 5 років тому +1

    Вот бы всем так объснять! Спасибо, все стало на свои места!!!

  • @user-km9br1oe8r
    @user-km9br1oe8r 5 років тому

    Спасибо большое, очень рад что нашел ваш канал

  • @christinalozovaya5860
    @christinalozovaya5860 5 років тому +3

    суперски объясняешь, спасибо!

  • @fruitypie
    @fruitypie 6 років тому +10

    Супер, спасибо за видео) Сделайте видео о функциях высшего порядка в связке с call,bind,apply

  • @шмяка
    @шмяка 6 років тому

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

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

    Классное видео. Спасибо. Начал понимать!!

  • @user-we9hx5vf1j
    @user-we9hx5vf1j 6 років тому +2

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

  • @dmytrohelbak
    @dmytrohelbak 5 років тому

    Супер объяснение, супер материал, супер спасибо!!!

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

    Спасибо.Очень доходчиво)

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

    Очень доходчиво, спасибо)

  • @zatoprosto103
    @zatoprosto103 6 років тому

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

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

    Спасибо, объяснения супер!

  • @codedreams3209
    @codedreams3209 5 років тому

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

  • @object_undefined
    @object_undefined 6 років тому

    Отличное обьяснение!

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

    Самое простое объяснение классов. Спасибо =)

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

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

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

    Круто!! Молодец!!👍👍👍

  • @micoberss5579
    @micoberss5579 6 років тому +1

    Spasibo vam

  • @leitohardy9679
    @leitohardy9679 5 років тому +5

    Чел реально отлично преподает JS!

  • @alexiki3523
    @alexiki3523 5 років тому

    Спасибо. Потешил!

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

    Однозначно Лайк!!

  • @alexkot1265
    @alexkot1265 6 років тому +10

    Столь лаконичное и информативное видео сегодня на вес золота. Хочется посмотреть еще что-нибудь. Так же было бы здорово систематизировать знания с телеграмм-канала, он хорош.

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

    Наверное, лучшее на всем пространстве видео на данную тему. Докопались с какой-то опиской в коде. Простейший же код, че млин голову ломать. Сначала сами попробуйте подобного рода создать что-нибудь... Гениальный видос. Юрий, очень нужны ваши видео на прочие темы JS, вы великолепны

  • @dmytrodemydenko3534
    @dmytrodemydenko3534 5 років тому +16

    Спасибо. Наконец то я понял что такое __proto__ && prototype :)

  • @pandaskeptic2937
    @pandaskeptic2937 5 років тому +18

    Отличное видео! 👍 👍 👍
    10:18 вместо равно минус должен стоять, а то код ошибку выдаст.

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

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

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

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

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

    Класс! Я почти два час потратил пытаясь это всё объяснить. Спасибо!

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

    Спасибо!

  • @valexxjr
    @valexxjr 5 років тому +3

    Зыс 😁
    Спасибо за информативный ролик)

  • @nicothin
    @nicothin 5 років тому +36

    Отличное видео.
    Но как-же много перебивок. Одна даже в середине предложения :(

    • @yurafedorenko1218
      @yurafedorenko1218 5 років тому +2

      у некоторых "опытных" спикеров иногда не получается целое предложение записать одним дублем))

  • @user-oc6hw8xd3n
    @user-oc6hw8xd3n 6 років тому +5

    Отличная подача! Все стало понятно, спасибо!

  • @frednoby8531
    @frednoby8531 5 років тому +12

    Можете снять урок по геттерам и сеттерам в JS? Вот ни один источник доходчиво и просто не объясняет суть этого.

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

    Ты крут.

  • @alisergazy4564
    @alisergazy4564 6 років тому +4

    Классно, ваще четко, закрепил свои знания, спасибо большое, давайте дальше про ТРИ КИТА в JS на классасх и как раз там расскажите про стрелочные

  • @user-zg3vt6zh6y
    @user-zg3vt6zh6y 6 років тому +60

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

    • @joylz7045
      @joylz7045 5 років тому +2

      Я не одинок!

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

    Освіжив перед співбесідою :) Дякую!

  • @SafetyLast-_-
    @SafetyLast-_- 2 роки тому +2

    Юра, когда ты расскажешь о том кто такой "Area Lead" ? :)
    P.S. Подкаст интересный! Продолжайте в том же духе 👍

  • @scape4632
    @scape4632 5 років тому +5

    Сними видос про ООП js, es6

  • @PacoOfficial
    @PacoOfficial 5 років тому +1

    мне вот эта тема с прототипами в js прям нрав, как оно всё наследуется от прототипа и т.д

  • @hacksaw_raw
    @hacksaw_raw 6 років тому +1

    Круто получилось. Продолжайте

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

    Юрий, вы очень понятно объясняете! Хочется больше таких видео. Но на канале что-то не очень много их нашел. :( Может не там искал?

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

      Вот плейлист со всеми видео Юрия - ua-cam.com/play/PLuEo4W0EBxtWOf1CZQNmqzwRWG9xeTOZ6.html

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

    11.56 ссылка proto нового обьекта будет ссылаться на тот обьект что лежит в свойстве prototype в функции, А КАК же то что она должна ссылаться на function.prototype, как же call() и apply()?

  • @boycovclub
    @boycovclub 5 років тому +1

    Самый понятное объяснение спасибо

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

    🔥

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

    Это вы объяснили прототипы на ES5?

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

    отличное видео, но где ещё?)

  • @dimaelmoTV
    @dimaelmoTV 6 років тому +2

    Годно прям

  • @andreytsapko4213
    @andreytsapko4213 6 років тому +1

    Полезно, сэнкс!

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

    Пересмотрел второй раз после двух недель изучения теории на эту тему. Теперь смутило, что ничего не сказали про скрытое свойство [[prototype]]. А ведь по сути это оно содержит ссылку на прототип обьекта, а __protto__ - это всего лишь геттер/сеттер для него.

  • @alexdang2357
    @alexdang2357 5 років тому

    nice

  • @andreyp2632
    @andreyp2632 5 років тому +1

    класс, хорошее видео , делай больше про js для начинающих. И маленький совет, поменьше заставок с картинкой - мы вам перезвоним, сильно отвлекает.

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

    Борода, это лучшее толкование this и prototype, которое можно найти, молодец.

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

    Только начал. И по-моему этот видос для тех кто и так в теме, так как нифига не проячнил. Про this я и сам знаю, так что все понял. Про proto нифига не знаю, но спасибо, теперь я знаю что есть какая-то непонятная штука которая неизвестно зачем нужна, но наверняка очень полезная, ага.
    И 10500 перебивок. Это блянупиздец.
    Буду рисовать крутые схемки со стрелочками и не покажу ни одного нормального примера, что б выглядеть умным, а потом запущу перебивку и поехали к следующей теме

  • @PacoOfficial
    @PacoOfficial 5 років тому

    прикона

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

    САмое крутое объснение которое я видел\

  • @Ratelchief
    @Ratelchief 5 років тому

    в конце цепочки - __proto__ -вернется null, а не undefined.
    видео полезное и наглядное.

    • @yurafedorenko1218
      @yurafedorenko1218 5 років тому +1

      имеется ввиду, что если запрашиваемое свойство не найдено, то вернется undefined

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

    Класс - это функция, а функция - это объект, у объекта есть прототипы.
    __proto__ - ссылка на список прототипов родителя.
    This - ссылка на метод или какое-то значение объекта, в котором вызывается функция.
    Так?

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

    Спасибо, у меня сложился пазл

  • @Mamikonars
    @Mamikonars 5 років тому

    Тысячный лайк ;)

  • @dmytro-skh
    @dmytro-skh 6 років тому

    Отличное видео, наконец то я понял разницу и зачем так дурацки создаются конструкторы

  • @ai4e277
    @ai4e277 5 років тому +8

    Ты крут, единственное реально нужно исправить глухую Г и слово када, заменить на когда. Удачи тебе 😉 очень классно рассказываешь

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

    var obj = {arr:[1,2,3], f:function(){this.arr.forEach(function(el){ тут this равен undefined - почему? })}}

    • @vlad-yelnikov
      @vlad-yelnikov 4 роки тому

      Здесь this - объект, все как и должно быть. Если ты про то, что в консоли браузера показывает undefined, то это результат возврата функции, если она ничего не возвращает (как у тебя), то будет выводиться undefined в консоль. Это нормально и к this никак не относится.
      P.S. На будущее - лучше давай ссылку с нормально отформатированным кодом (с отступами и т.д.) на pastebin или что-то подобное - чтоб проще читалось. А в том виде, как ты сюда в комменты скинул - далеко не каждый будет смотреть и разбираться, что там у тебя не работает.

  • @violmy
    @violmy 6 років тому +1

    класно! го веб по жесті js)

  • @slavkapiyavka
    @slavkapiyavka Рік тому +1

    5:32 - null, а не undefined

  • @Vitlsa
    @Vitlsa 5 років тому +1

    2:30 - use strict делает this undefined - у меня получилось всё равно window, как я не старался...

    • @RavenTheX
      @RavenTheX 5 років тому

      Магия какая то, скорее всего где то у тебя ошибка в коде...

    • @user-jj9wv5vk3x
      @user-jj9wv5vk3x 5 років тому

      вот код, попробуй, u-d, без строгача объект window
      'use strict'
      function g() {
      console.log(this);
      }
      g();

  • @rinatvaliullov3247
    @rinatvaliullov3247 6 років тому

    Кажется по поводу __proto__, если в Object.prototype нет свойства, то возвращается null, а не undefined (5:33)

    • @alisergazy4564
      @alisergazy4564 6 років тому

      Нет, неверно, ubdefined как раз таки и означает что там ничего нету, а null этого гарантировать не может, т.к null означает что это свойство уже явно создано, но пустое, а null т.к будет присвоен не примитив и самое важное, что он будет присвоен, так что null там далеко нету

    • @fruitypie
      @fruitypie 6 років тому +1

      Object.prototype ссылается на null, а при поиске свойств в цепочке и их несуществовании в нем, возвращается undefined :)

    • @rinatvaliullov3247
      @rinatvaliullov3247 6 років тому

      то есть то, что в консоли в хром дев тулз выводится и есть то, на что ссылается Object.prototype

    • @fruitypie
      @fruitypie 6 років тому

      Чтобы узнать, на что ссылается Object.prototype, нужно написать следующее: Object.prototype.__proto__

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +1

      так стоп, вот тут случается подмена понятия)) если нет свойства то возвращается undefined, а вот Object.prototype.__proto__ указывает на null, но это вообще не одно и то же

  • @WapSter92
    @WapSter92 5 років тому

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

  • @user-jq3sz4hg6k
    @user-jq3sz4hg6k 5 років тому

    Зачем программистам доска?) нормально же вставляли код в первой части видео.

  • @user-hp2cg6px8c
    @user-hp2cg6px8c 5 років тому +2

    зыс

  • @larryunderwood615
    @larryunderwood615 5 років тому

    Зыс. Вындоу.

  • @xxxxPomaHxxxx
    @xxxxPomaHxxxx 5 років тому

    На 1:46, функция копируется не по ссылке а по значению, если мы присвоили в свойство объекта функцию то есть он стал методом, то потом изменив исходную функцию мы сохраним в объекте изначальную.

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

    Вы мне перезвоните ?

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

    ОБj.

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

    Нихера не понял, смотрим дальше.

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

    я в прототайп только играл, а так не понял о чем вообще речь была.

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

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

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

    глабальны абъект

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

    Че за бред написан на 10:17

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

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

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

    круто, ничего не понятно

  • @nazarromanchuk6080
    @nazarromanchuk6080 5 років тому +1

    "Мы Вам перезвоним" - фу, нереально бісить!

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

    у вас каша особенно в начале

  • @alexbel5599
    @alexbel5599 5 років тому

    Хорошая подача. Но гекаешь так сильно и в каждом слове, что аж отвлекает... А я из Украины...

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

    Слишком мало примеров кода, зато много говорильни.

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

    Гребаная заставка бесит. Невозможно смотреть.

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

    дизлайк за частую заставку

  • @typokrat
    @typokrat 5 років тому

    Все прекрасно..
    НО!!! Перестань ХЭЭЭКАТЬ!
    Уши режет ... ! Хээ Хээ Хээ

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

    не return now.getFullYear() = this.born а return now.getFullYear() - this.born;