Показать сообщение отдельно
  #11 (permalink)  
Старый 26.11.2020, 10:49
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Есть еще один способ добраться из базового класса, до класса самого верхнего наследника.
this.constructor
Причем, это прокатывает даже в определении полей, в отличие от new.target, который работает только непосредственно в конструкторе

/**
 * @abstract
 */
class AbstractHttpService {
    baseRouteName = this.constructor.baseRouteName;
      
    constructor(baseRouteName) {
        if (baseRouteName)  this.baseRouteName = baseRouteName;
    }
}
  
class ProductsHttpService extends AbstractHttpService {
    static baseRouteName = 'product';
}
 
let x = new ProductsHttpService ()
console.log (x.baseRouteName)

Последний раз редактировалось voraa, 26.11.2020 в 11:01.
Ответить с цитированием