Прототипное программирование и прототипное наследование в JavaScript

preview_player
Показать описание


#proto #prototype #__proto__ #oop #metarhia #js #javascript
Рекомендации по теме
Комментарии
Автор

Это пожалуй лучшая лекция из всех что встречал на эту тему. После просмотра можно понять как вообще JS устроен и как оно работает под капотом. Спасибо вам огромное Тимур Гафарович!

TimurSevimli
Автор

Видео в тему. Всё структурировано и доступно. Как раз разобрал прототипы и тут видео. Помогло разложить в голове всё по полочкам и понять, что же использовать.
Спасибо за ваш труд!

bohdan.petrov
Автор

Было очень интересно. Что-то наконец-то начало в голове укладываться по теме прототипного наследования.

vovergg
Автор

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().

self_zfc
Автор

Круто, заполнил пробелы в прототипах. Дякую)

pashkes
Автор

Спасибо за видео. Непонятное и сложное теперь стало ясным.

oldodyn
Автор

0:31 - Простой вариант прототипного наследования
6:20 - Конструктор прототипа
14:20 - Наследование через классы
19:10 - Способы унаследоваться от класса
31:01 - Современный синтаксис наследования

АнтонСухов-ну
Автор

Так рад, что нашёл ваш канал. Пока что у вас идеальные видеоролики по JS на ютубе. Спасибо

OlekusGames
Автор

Спасибо большое, родной КПИ помогает и 8 лет спустя)

kirillpospolitaki
Автор

Спасибо большое. Всё раскладывает по полочкам. Только единственное заметил маленькую ошибочку на 17:22. Object.__proto__ ссылается на Function.prototype, а не Object.prototype, это мелочи, конечно.

P.S. Пересмотрел через месяц и понял что я тупой и автор имел ввиду что constructor в Object.prototype ссылается на Object

ИльяБондаренко-те
Автор

Здравствуйте, хотел уточнить на счёт второго способа при наследовании. У вас написано Square.prototype = Object.create(prototype), но почему не используется запись Square.prototype = Rect.prototype; Зачем нужно создавать новый объект прототипа не могу понять. Аналогичный результат работы я получаю при данной записи. Буду благодарен за ответ

anatolii.vorobiov
Автор

Спасибо. Жаль, что звук не очень. Но это не главное.

nickdunne
Автор

Ох, намучилась я с этим прототипным наследованием.Прочитала кучу статей от learn JavaScript, mdn…, но поняла только сейчас🤍Спасибо

dianashakirova
Автор

Спасибо, со второго раза только зашло вчера смотрел, сегодня пересмотрел и четко понимаю JS не Java. У Вас нет на гите таблиц с ссылками прототипов? По таблицам новичку просто ориентироваться, я бы даже распечатал на первое время.

masterguyver