假设我有:
class Foo {}
class Bar extends Foo {}
var clazz = Bar;
我发现要得到 Bar
有 clazz.prototype.constructor
。
如何找出 Bar
的父类是什么?
最佳答案
正如@MattiasBuelens 对答案的评论,它应该是:obj.constructor
而不是 obj.prototype.constructor
作为 obj.prototype
为 null(prototype
属性存在于类 Bar
中,但不存在于实例中)。
至于获取 Foo
的构造函数,这是一个丑陋的 hack:
let FooCtor = Object.getPrototypeOf(Object.getPrototypeOf(obj)).constructor;
var foo = new FooCtor();
编辑
如果你想做同样的事情但使用 Bar
类而不是它的实例,那么:
let FooCtor = Object.getPrototypeOf(Bar.prototype).constructor;
var foo = new FooCtor();
关于javascript - TypeScript/JavaScript - 如何获取类的父类(super class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707038/