2

在阅读 ecmascript-harmony 规范时,我看不到任何有关检查实例/对象以查找有关其类和模块的信息的信息。我想要做的是能够检查一个 javascript 对象(即 es6 和谐类的一个实例)并找出:

  • 实例化它的类的名称
  • 定义类的模块的名称
  • 可能的超类及其模块的名称

有人知道这在 es6 中是否可行?

如果没有,是否有理由不可能或首选?

我可以想到一个可能的问题,即类没有像类与其他语言(即 Java)的包那样“绑定”到它们的模块。即,如果在 ModuleA 中定义 ClassA 并且 ModuleB 导入 ClassA 以稍后重新导出它会发生什么?

4

1 回答 1

0

找出实例化它的类的名称

是的。您可以.constructor.name在 ES6 中访问。

找出可能的超类的名称

是的。您可以通过原型链访问超类。

找出定义类的模块的名称

不,那是不可能的。如果引擎支持,调试器可能能够找到定义类的源文件,但代码不支持。模块和类并不像你想象的那样是静态的,它们当然也不是命名空间,所以无论如何这都没用。

于 2016-08-24T05:14:00.543 回答