Задать вопрос
MrGobus
@MrGobus
Иван

Get\Set для унаследованных классов, как?

Как я понял для при описании класса гетеры и сетеры задаются при описании prototype

ClassName.prototype = {
  sex x(value) {
    ...
  }
}


После наследования (както так : ClassName2.prototype = Object.create(ClassName.prototype)) изменять prototype как я привел в примере выше нельзя. И как теперь быть если надо добавить новому классу подобных гетеров/сетеров ?
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ну добавить такие вот геттеры/сеттеры вы можете, если используете Object.create:
ClassName2.prototype = Object.create(ClassName.prototype, {
   foo: {
        enumerable: false,
        get: function () {}
        set: function () {}
   }
}))
Ответ написан
Комментировать
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Добавлю, что если прототип уже создан, то можно воспользоваться Object.defineProperty()
Оба примера делают одно и то же:

NewClass.prototype = Object.create(Class.prototype, {
	a: {
		set: function () {...}
	}
});

NewClass.prototype = Object.create(Class.prototype);
Object.defineProperty(NewClass.prototype, 'a', {
	set: function () {...}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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