Задать вопрос
PavelScron
@PavelScron

Как раньше в es5 создавался подкласс(subclass)?

Когда не было class extends, что использовалось? Какой код стандартный под это дело был?

Просто call использовали?

Вот смотрю код из es5 и не понимаю зачем тут Object.create

var Person5 = function(name, yearOfBirth, job) {
    this.name = name;
    this.yearOfBirth = yearOfBirth;
    this.job = job;
}

Person5.prototype.calculateAge = function() {
    var age = new Date().getFullYear() - this.yearOfBirth;
    console.log(age);
}

var Athlete5 = function(name, yearOfBirth, job, olymicGames, medals) {
    Person5.call(this, name, yearOfBirth, job);
    this.olymicGames = olymicGames;
    this.medals = medals;
}

Athlete5.prototype = Object.create(Person5.prototype);
  • Вопрос задан
  • 221 просмотр
Подписаться 2 Простой 2 комментария
Решения вопроса 2
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
В JS никогда не было, да и сейчас нет классового наследования, как и самих классов. Это всё синтаксический сахар, не более.
В JS есть прототипное наследование. В 2 словах о нём не расскажешь, но в контексте вопроса - Object.create(Person5.prototype) создаёт новый пустой объект с прототипом Person5.prototype. Т.о. ему с рождения становятся доступны свойства и методы прототипа.
// создаём новый экземпляр Athlete5
var ch = new Athlete5();
// проверяем в нём наличие доступа к методу Person5.prototype
console.log(ch.calculateAge);
Ответ написан
Комментировать
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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