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

  Рет қаралды 9,589

Timur Shemsedinov

Timur Shemsedinov

Күн бұрын

Пікірлер: 28
@TimurSevimli
@TimurSevimli Жыл бұрын
Это пожалуй лучшая лекция из всех что встречал на эту тему. После просмотра можно понять как вообще JS устроен и как оно работает под капотом. Спасибо вам огромное Тимур Гафарович!
@self_zfc
@self_zfc 8 ай бұрын
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у
@АнтонСухов-н9у 2 жыл бұрын
0:31 - Простой вариант прототипного наследования 6:20 - Конструктор прототипа 14:20 - Наследование через классы 19:10 - Способы унаследоваться от класса 31:01 - Современный синтаксис наследования
@bohdan.petrov
@bohdan.petrov 5 жыл бұрын
Видео в тему. Всё структурировано и доступно. Как раз разобрал прототипы и тут видео. Помогло разложить в голове всё по полочкам и понять, что же использовать. Спасибо за ваш труд!
@vovergg
@vovergg 3 жыл бұрын
Было очень интересно. Что-то наконец-то начало в голове укладываться по теме прототипного наследования.
@oldodyn
@oldodyn 5 жыл бұрын
Спасибо за видео. Непонятное и сложное теперь стало ясным.
@OlekusGames
@OlekusGames 5 жыл бұрын
Так рад, что нашёл ваш канал. Пока что у вас идеальные видеоролики по JS на ютубе. Спасибо
@pashkes
@pashkes 5 жыл бұрын
Круто, заполнил пробелы в прототипах. Дякую)
@timashoff
@timashoff Жыл бұрын
как всегда, спасибо!
@ИльяБондаренко-т4е
@ИльяБондаренко-т4е Жыл бұрын
Спасибо большое. Всё раскладывает по полочкам. Только единственное заметил маленькую ошибочку на 17:22. Object.__proto__ ссылается на Function.prototype, а не Object.prototype, это мелочи, конечно. P.S. Пересмотрел через месяц и понял что я тупой и автор имел ввиду что constructor в Object.prototype ссылается на Object
@deanArtDev
@deanArtDev 2 жыл бұрын
Сильно!
@kirillpospolitaki860
@kirillpospolitaki860 3 жыл бұрын
Спасибо большое, родной КПИ помогает и 8 лет спустя)
@Antonio-fm1sq
@Antonio-fm1sq 3 жыл бұрын
Спасибо!
@nickdunne1235
@nickdunne1235 2 жыл бұрын
Спасибо. Жаль, что звук не очень. Но это не главное.
@dianashakirova2614
@dianashakirova2614 Жыл бұрын
Ох,намучилась я с этим прототипным наследованием.Прочитала кучу статей от learn JavaScript,mdn…,но поняла только сейчас🤍Спасибо
@TimurShemsedinov
@TimurShemsedinov Жыл бұрын
Картинки помогли? Не даром я старательно слайды изображал?
@dianashakirova2614
@dianashakirova2614 Жыл бұрын
@@TimurShemsedinov По большей части картинки мне и помогли.А то пока я читала,не могла понять разницу между __proto__ и prototype
@masterguyver84
@masterguyver84 5 жыл бұрын
Спасибо, со второго раза только зашло вчера смотрел, сегодня пересмотрел и четко понимаю JS не Java. У Вас нет на гите таблиц с ссылками прототипов? По таблицам новичку просто ориентироваться, я бы даже распечатал на первое время.
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
Что такое таблицы со ссылками прототипов?
@masterguyver84
@masterguyver84 5 жыл бұрын
@@TimurShemsedinov То что Вы рисовали на лекции по прототипам на примерах, функций, классов, там действительно все наглядно описано, чтоб в памяти удержать надо распечатать и визуально посмотреть мне еще. Я понял уже как работает. Но для ориентира ОЧЕНЬ КЛАССНАЯ ЗАДУМКА.
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
@@masterguyver84 ок, добавил ссылку в описание, можно инвертировать слайды и распечатать
@masterguyver84
@masterguyver84 5 жыл бұрын
@@TimurShemsedinov Спасибо удалось скачать!!!
@anatolii.vorobiov
@anatolii.vorobiov 4 жыл бұрын
Здравствуйте, хотел уточнить на счёт второго способа при наследовании. У вас написано Square.prototype = Object.create(prototype), но почему не используется запись Square.prototype = Rect.prototype; Зачем нужно создавать новый объект прототипа не могу понять. Аналогичный результат работы я получаю при данной записи. Буду благодарен за ответ
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Если после этого я буду добавлять методы в Square.prototype, то в моем слусае они будут только у экземпляров Square доступны, а в вашем - они и у Rect появятся
Мемоизация функций: memoize в JavaScript
34:57
Timur Shemsedinov
Рет қаралды 8 М.
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
Proxy и Symbol в JavaScript
48:29
Timur Shemsedinov
Рет қаралды 10 М.
Коллекции, множества, хештаблицы в JavaScript
50:42
Топ 5 ОШИБОК Новичков в REACT
13:07
gorbatkoff
Рет қаралды 4,8 М.
Функции-обертки: Wrappers в JavaScript
59:23
Timur Shemsedinov
Рет қаралды 7 М.
Типизированные массивы в JavaScript
39:43
Timur Shemsedinov
Рет қаралды 9 М.
Итерирование, циклы и итераторы в JavaScript
44:13