【发布时间】:2017-10-12 22:17:14
【问题描述】:
我想访问将在调用构造函数时定义的类的所有属性,以便我可以为该类实现某种接口。
假设我有一个定义属性hello 的类,我想访问它以检查它是否已实现以及分配给它的类型是否正确。问题是,由于所有非static 类属性都绑定到一个实例,如果不实例化类,我就无法获得它们,而我做不到。
在这种情况下,是否可以访问hello?
class MyClass {
constructor () {
this.hello = 'greetings';
}
}
【问题讨论】:
-
在没有实例的情况下访问实例属性 - 根据定义,不,你不能。这听起来像是一个 XY 问题 - 你实际上想要实现什么
-
JavaScript 是一种动态语言。你似乎想要一个静态的。 TypeScript 可能会满足您的需求。
-
“我做不到。” 为什么?
-
创建一个临时实例来获取这些属性名称,这是最简单的方法。
-
您要么希望 Typescript 具有适当的静态类型检查;或者您想在运行时执行此操作,此时我看不到您必须在一个类而不是一个实例上执行此操作的场景......在这里进行一些澄清会有很长的路要走。
标签: javascript class