0:31 - Простой вариант прототипного наследования 6:20 - Конструктор прототипа 14:20 - Наследование через классы 19:10 - Способы унаследоваться от класса 31:01 - Современный синтаксис наследования
Это пожалуй лучшая лекция из всех что встречал на эту тему. После просмотра можно понять как вообще JS устроен и как оно работает под капотом. Спасибо вам огромное Тимур Гафарович!
Спасибо большое. Всё раскладывает по полочкам. Только единственное заметил маленькую ошибочку на 17:22. Object.__proto__ ссылается на Function.prototype, а не Object.prototype, это мелочи, конечно. P.S. Пересмотрел через месяц и понял что я тупой и автор имел ввиду что constructor в Object.prototype ссылается на Object
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().
Видео в тему. Всё структурировано и доступно. Как раз разобрал прототипы и тут видео. Помогло разложить в голове всё по полочкам и понять, что же использовать. Спасибо за ваш труд!
Здравствуйте, хотел уточнить на счёт второго способа при наследовании. У вас написано Square.prototype = Object.create(prototype), но почему не используется запись Square.prototype = Rect.prototype; Зачем нужно создавать новый объект прототипа не могу понять. Аналогичный результат работы я получаю при данной записи. Буду благодарен за ответ
Если после этого я буду добавлять методы в Square.prototype, то в моем слусае они будут только у экземпляров Square доступны, а в вашем - они и у Rect появятся
Спасибо, со второго раза только зашло вчера смотрел, сегодня пересмотрел и четко понимаю JS не Java. У Вас нет на гите таблиц с ссылками прототипов? По таблицам новичку просто ориентироваться, я бы даже распечатал на первое время.
@@TimurShemsedinov То что Вы рисовали на лекции по прототипам на примерах, функций, классов, там действительно все наглядно описано, чтоб в памяти удержать надо распечатать и визуально посмотреть мне еще. Я понял уже как работает. Но для ориентира ОЧЕНЬ КЛАССНАЯ ЗАДУМКА.
0:31 - Простой вариант прототипного наследования
6:20 - Конструктор прототипа
14:20 - Наследование через классы
19:10 - Способы унаследоваться от класса
31:01 - Современный синтаксис наследования
Это пожалуй лучшая лекция из всех что встречал на эту тему. После просмотра можно понять как вообще JS устроен и как оно работает под капотом. Спасибо вам огромное Тимур Гафарович!
Спасибо большое. Всё раскладывает по полочкам. Только единственное заметил маленькую ошибочку на 17:22. Object.__proto__ ссылается на Function.prototype, а не Object.prototype, это мелочи, конечно.
P.S. Пересмотрел через месяц и понял что я тупой и автор имел ввиду что constructor в Object.prototype ссылается на Object
Сильно!
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().
Видео в тему. Всё структурировано и доступно. Как раз разобрал прототипы и тут видео. Помогло разложить в голове всё по полочкам и понять, что же использовать.
Спасибо за ваш труд!
Было очень интересно. Что-то наконец-то начало в голове укладываться по теме прототипного наследования.
Круто, заполнил пробелы в прототипах. Дякую)
Здравствуйте, хотел уточнить на счёт второго способа при наследовании. У вас написано Square.prototype = Object.create(prototype), но почему не используется запись Square.prototype = Rect.prototype; Зачем нужно создавать новый объект прототипа не могу понять. Аналогичный результат работы я получаю при данной записи. Буду благодарен за ответ
Если после этого я буду добавлять методы в Square.prototype, то в моем слусае они будут только у экземпляров Square доступны, а в вашем - они и у Rect появятся
Спасибо за видео. Непонятное и сложное теперь стало ясным.
Ох,намучилась я с этим прототипным наследованием.Прочитала кучу статей от learn JavaScript,mdn…,но поняла только сейчас🤍Спасибо
Картинки помогли? Не даром я старательно слайды изображал?
@@TimurShemsedinov По большей части картинки мне и помогли.А то пока я читала,не могла понять разницу между __proto__ и prototype
Спасибо. Жаль, что звук не очень. Но это не главное.
Так рад, что нашёл ваш канал. Пока что у вас идеальные видеоролики по JS на ютубе. Спасибо
как всегда, спасибо!
Спасибо!
Спасибо, со второго раза только зашло вчера смотрел, сегодня пересмотрел и четко понимаю JS не Java. У Вас нет на гите таблиц с ссылками прототипов? По таблицам новичку просто ориентироваться, я бы даже распечатал на первое время.
Что такое таблицы со ссылками прототипов?
@@TimurShemsedinov То что Вы рисовали на лекции по прототипам на примерах, функций, классов, там действительно все наглядно описано, чтоб в памяти удержать надо распечатать и визуально посмотреть мне еще. Я понял уже как работает. Но для ориентира ОЧЕНЬ КЛАССНАЯ ЗАДУМКА.
@@masterguyver84 ок, добавил ссылку в описание, можно инвертировать слайды и распечатать
@@TimurShemsedinov Спасибо удалось скачать!!!
Спасибо большое, родной КПИ помогает и 8 лет спустя)