Почему получаю undefined при обращении к родительскому проперти?

Родитель:

class a {

protected _selected: any;
      
   get selected() {
        return this._selected;
    }

    set selected(value: any) {
        this._selected = value;
    }
}


Ребенок:

class b extends a {
    set selected(value: any) {
        super.selected = value;
        
    }

get selected() {
      return super.selected;
}
}


Вызов:

let _b = new b();
_b.selected = "333";
console.log(_b.selected); // 333


Почему - если не переопределить в ребенке:

get selected() {
        return this._selected;
    }


То это свойство не ищется в родителе, возвращает undefined при попытке console.log(_b.selected);

Нашел обсуждение здесь
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Бородатый программер
В оригинале потомок был без getter'а, value потомка перекрывало value родителя, так работает прототипное наследование.
В вашем же варианте все работает, так как selected объявлен и с геттером и с сеттером
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы