Дано: абстрактный класс, в методе которого нужно получать название имплементированного класса.
Для этого, в методе нужно обращаться к прототипу текущего класса через функцию Object.getPrototypeOf. Например:
class Foo {
test() {
const instanceProto = Object.getPrototypeOf(this);
console.log(instanceProto.constructor.name);
}
}
Теперь, имплементируем класс Foo в класс Ping:
class Ping extends Foo {
constructor() {
}
}
Теперь при создании нового экземпляра, метод test будет выдавать имя наследуемого класса:
var example = new Ping()
example.test() // выведет Ping
Таким способом, можно упростить код, перенеся его в абстрактный класс.