Это пожалуй лучшая лекция из всех что встречал на эту тему. После просмотра можно понять как вообще JS устроен и как оно работает под капотом. Спасибо вам огромное Тимур Гафарович!
@self_zfc8 ай бұрын
6:40 можно было просто использовать стрелочную функцию, чтобы не создавать поле prototype у Point.from 17:35 Object === Object.prototype.constructor // true это рекурсия Object.__proto__ === Function.prototype // true В видео оговорка(?), эта связь на картинке не показана 20:53 я немного исследовал код и мне кажется мы это делаем в первую очередь затем, чтобы правильно опрелился this в функции Square. Когда мы будем создавать инстанс Square через ключевое слово new, this будет иметь только служебное поле [[Prototype]] равное Square.prototype. Если дописать в функции Square console.log(this.___proto___ === Square.prototype) то оно вернёт true. И это очень логично т.к инструкция Rect.call(а затем и ф-я Square) должна будет вернуть this дополнив его проперти x, y, width, height. Именно так и сформируется инстанс Square. Другие способы предпочтительнее т.к там мы не создаём лишний полноценный инстанс Rect().
@АнтонСухов-н9у2 жыл бұрын
0:31 - Простой вариант прототипного наследования 6:20 - Конструктор прототипа 14:20 - Наследование через классы 19:10 - Способы унаследоваться от класса 31:01 - Современный синтаксис наследования
@bohdan.petrov5 жыл бұрын
Видео в тему. Всё структурировано и доступно. Как раз разобрал прототипы и тут видео. Помогло разложить в голове всё по полочкам и понять, что же использовать. Спасибо за ваш труд!
@vovergg3 жыл бұрын
Было очень интересно. Что-то наконец-то начало в голове укладываться по теме прототипного наследования.
@oldodyn5 жыл бұрын
Спасибо за видео. Непонятное и сложное теперь стало ясным.
@OlekusGames5 жыл бұрын
Так рад, что нашёл ваш канал. Пока что у вас идеальные видеоролики по JS на ютубе. Спасибо
@pashkes5 жыл бұрын
Круто, заполнил пробелы в прототипах. Дякую)
@timashoff Жыл бұрын
как всегда, спасибо!
@ИльяБондаренко-т4е Жыл бұрын
Спасибо большое. Всё раскладывает по полочкам. Только единственное заметил маленькую ошибочку на 17:22. Object.__proto__ ссылается на Function.prototype, а не Object.prototype, это мелочи, конечно. P.S. Пересмотрел через месяц и понял что я тупой и автор имел ввиду что constructor в Object.prototype ссылается на Object
@deanArtDev2 жыл бұрын
Сильно!
@kirillpospolitaki8603 жыл бұрын
Спасибо большое, родной КПИ помогает и 8 лет спустя)
@Antonio-fm1sq3 жыл бұрын
Спасибо!
@nickdunne12352 жыл бұрын
Спасибо. Жаль, что звук не очень. Но это не главное.
@dianashakirova2614 Жыл бұрын
Ох,намучилась я с этим прототипным наследованием.Прочитала кучу статей от learn JavaScript,mdn…,но поняла только сейчас🤍Спасибо
@TimurShemsedinov Жыл бұрын
Картинки помогли? Не даром я старательно слайды изображал?
@dianashakirova2614 Жыл бұрын
@@TimurShemsedinov По большей части картинки мне и помогли.А то пока я читала,не могла понять разницу между __proto__ и prototype
@masterguyver845 жыл бұрын
Спасибо, со второго раза только зашло вчера смотрел, сегодня пересмотрел и четко понимаю JS не Java. У Вас нет на гите таблиц с ссылками прототипов? По таблицам новичку просто ориентироваться, я бы даже распечатал на первое время.
@TimurShemsedinov5 жыл бұрын
Что такое таблицы со ссылками прототипов?
@masterguyver845 жыл бұрын
@@TimurShemsedinov То что Вы рисовали на лекции по прототипам на примерах, функций, классов, там действительно все наглядно описано, чтоб в памяти удержать надо распечатать и визуально посмотреть мне еще. Я понял уже как работает. Но для ориентира ОЧЕНЬ КЛАССНАЯ ЗАДУМКА.
@TimurShemsedinov5 жыл бұрын
@@masterguyver84 ок, добавил ссылку в описание, можно инвертировать слайды и распечатать
@masterguyver845 жыл бұрын
@@TimurShemsedinov Спасибо удалось скачать!!!
@anatolii.vorobiov4 жыл бұрын
Здравствуйте, хотел уточнить на счёт второго способа при наследовании. У вас написано Square.prototype = Object.create(prototype), но почему не используется запись Square.prototype = Rect.prototype; Зачем нужно создавать новый объект прототипа не могу понять. Аналогичный результат работы я получаю при данной записи. Буду благодарен за ответ
@TimurShemsedinov4 жыл бұрын
Если после этого я буду добавлять методы в Square.prototype, то в моем слусае они будут только у экземпляров Square доступны, а в вашем - они и у Rect появятся