Показать сообщение отдельно
  #1 (permalink)  
Старый 25.11.2020, 01:20
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

ES6. Class constructor question
Здравствуйте.

У меня условно абстрактный класс для работы с сетью, от которого наследуется множество классов различных моделей, пример:
/**
 * @abstract
 */
class AbstractHttpService {
    baseRouteName;
    
    constructor(baseRouteName) {
        if (baseRouteName) {
            this.baseRouteName = baseRouteName;
        }
    }
}

class ProductsHttpService extends AbstractHttpService {
    baseRouteName = 'product';
}


Решил вкорячить кэширование экземпляров http-сервисов и тут понял, что из конструктора абстрактного класса никак не получить значение свойства "ребенка" до его инициализации.

Скажите, пожалуйста, есть ли какой-нибудь способ получить из абстрактного класса значение свойства класса, который наследуется от этого самого абстрактного класса?

Вижу только одно решение: вместо объявления для ребенка значения свойства по умолчанию передавать в конструктор родителя это самое значение.
Ответить с цитированием