javascript - TypeScript/JavaScript - 如何获取类的父类(super class)?

标签 javascript reflection typescript superclass introspection

假设我有:

class Foo {}
class Bar extends Foo {}
var clazz = Bar;

我发现要得到 Barclazz.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/

相关文章:

c# - 为什么这行得通?

typescript - 如何修复 Typescript 错误 "Object is possibly ' 未定义'”

typescript - 从子组件路由到父级的路由器导出

javascript - karma angularjs 方法测试中的 console.log

javascript - 获取评级栏的颜色范围

Java反射: looking at the lines of code in a method?

javascript - TypeScript:在数字上使用 parseInt() 时出错

javascript - 正式输入字段验证

javascript - 装饰react组件以添加生命周期方法

java - 单个 Aspect 中针对相同方法执行切入点的多个建议 - Spring AOP