Как в дочернем объекте переопределить геттер/сеттер? Возник интересный вопрос. Можно ли в дочернем объекте каким либо образом переопределить геттер/сеттер у нужного свойства?

21 Авг 2019 в 06:59
169 +1
1
Ответы
1

Да, в дочернем объекте можно переопределить геттер/сеттер у нужного свойства. Для этого можно использовать методы Object.defineProperty() или Object.defineProperties() для переопределения существующих геттеров/сеттеров или добавления новых.

Пример:

// Родительский класс
class Parent {
constructor() {
this._value = 0;
}
get value() {
return this._value;
}
set value(newValue) {
this._value = newValue;
}
}
// Дочерний класс
class Child extends Parent {
constructor() {
super();
}
get value() {
return this._value * 2;
}
set value(newValue) {
this._value = newValue * 2;
}
}
let child = new Child();
console.log(child.value); // Выведет умноженное на 2 значение из дочернего класса
child.value = 5;
console.log(child.value); // Выведет умноженное на 2 установленное значение из дочернего класса

В данном примере у дочернего класса Child переопределены геттер и сеттер для свойства value.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир