@ironmansl

Вопросы о прототипном наследовании?

Изучаю прототипное наследование по нескольких ресурсах. И у меня возникло несколько вопросов:
Вопрос №1:
Как правильно написать определение:
1) Прототипное наследование-это когда прототип наследует свойства у другого объекта.
2) Прототипное наследование--это когда объект наследует свойства у прототипа.
Какой вариант правильный?

Вопрос №2:
какой здесь обьект прототип?

let animal = {
  eats: true
};
let rabbit = {
  jumps: true
};
rabbit.__proto__ = animal;


и какой здесь обьект прототип?
let point = {
  x: 10,
  y: 20,
};
 
let point3D = {
  z: 30,
  __proto__: point,
};
 
console.log(
  point3D.x, // 10
  point3D.y, // 20
  point3D.z  // 30
);


Вопрос №3:

Я так понял что создать (задать явно) прототип можно двумя способами:
object__proto__ = прототип
или так:
Оbject.create(прототип);

А что такое тогда в коде выше?:
__proto__: point
И в каких случаях его используют?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
1. 2 вариант
2.
4.3.5prototype - object that provides shared properties for other objects
соответственно point и animal прототипы.
3. между object.__proto__ = x и object = { __proto__: x} нет никакой разницы относительно результата. Еще прототип устанавливает оператор new. const v = new x ///v.__proto__ === x.prototype
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы