Ресурсы: Про __proto__ Наследование без __proto__
Базовый объект:
Код
const soldier = {
health: 400,
armor: 100,
sayHello: function () {
console.log('Hello');
}
};
Другой объект:
Код
const john = {
health: 100
};
Старый синтаксис наследования:
Код
john.__proto__ = soldier;
Объект
john наследует свойства и методы от объекта
soldier Код
console.log(john.armor); // 100
john.sayHello(); // Hello
Новый синтаксис:
Код
Object.setPrototypeOf(john, soldier);
Эта запись идентична записи выше. Это случай, когда объект
john уже существовал и мы просто установили ему прототип
soldier.
Но зачастую все это делается на этапе создания объекта:
Код
const john = Object.create(soldier);
Мы создали новый объект
john, который будет прототипно наследоваться от
soldier.
Код
const soldier = {
health: 400,
armor: 100,
sayHello: function () {
console.log('Hello');
}
};
const john = Object.create(soldier);
console.log(john.armor); // 100
john.sayHello(); // Hello
Добавлять комментарии могут только зарегистрированные пользователи.