Новое в JavaScript.
Нужны рекомендации о том, как получить доступ к имени вызывающего класса из статического метода, определенного в суперклассе с помощью классов ES6. Я потратил час на поиски, но не смог найти решение.
Фрагмент кода может помочь прояснить, что я ищу
class SuperClass {
get callingInstanceType() { return this.constructor.name }
static get callingClassType() { return '....help here ...' }
}
class SubClass extends SuperClass { }
let sc = new SubClass()
console.log(sc.callingInstanceType) // correctly prints 'SubClass'
console.log(SubClass.callingClassType) // hoping to print 'SubClass'
Как показано выше, я могу легко получить имя подкласса из экземпляра. Не совсем уверен, как получить доступ из статического метода.
Идеи по реализации static get callingClassType()
приветствуются.
return SuperClass.constructor.name;
- person Derek   schedule 21.05.2017Function
, а неSubClass
. Есть ли способ проверить цепочку вызовов и выдернуть оттуда? - person So Over It   schedule 21.05.2017SuperClass.prototype.constructor.name
и получить то, что вам нужно - person Derek   schedule 21.05.2017get_called_class()
. И, как показывает ответ Феликса ниже, это выполнимо и в JS. - person Matt Browne   schedule 21.05.2017