TypeScript / JavaScript - 如何获取类的超类?

Ond*_*žka 4 javascript reflection introspection superclass typescript

假设我有:

class Foo {}
class Bar extends Foo {}
var clazz = Bar;
Run Code Online (Sandbox Code Playgroud)

我发现要到达Bar那里clazz.prototype.constructor

我如何找出 的父类是什么Bar

Nit*_*mer 5

正如 @MattiasBuelens 对答案的评论,它应该是:obj.constructor而不是obj.prototype.constructornull obj.prototype(该prototype属性存在于类中Bar,但不存在于实例中)。

至于获取 的构造函数Foo,这是一个丑陋的黑客:

let FooCtor = Object.getPrototypeOf(Object.getPrototypeOf(obj)).constructor;
var foo = new FooCtor();
Run Code Online (Sandbox Code Playgroud)

编辑

如果您想做同样的事情,但使用Bar类而不是它的实例,那么:

let FooCtor = Object.getPrototypeOf(Bar.prototype).constructor;
var foo = new FooCtor();
Run Code Online (Sandbox Code Playgroud)