是否可以在不初始化类的情况下访问类属性?

问题描述:

我想要访问构造函数被调用时将定义的所有类的属性,以便我可以为类实现一种接口。是否可以在不初始化类的情况下访问类属性?

说我有一个类,它定义了属性hello,我想访问它来检查它已经实现并且分配给它的类型是正确的。问题是,因为所有非static类属性都与一个实例绑定在一起,所以如果没有实例化这个类,我就无法得到它们,这是我无法做到的。

在这种情况下,是否可以访问hello

class MyClass { 
    constructor() { 
     this.hello = 'greetings'; 
    } 
} 
+3

无实例访问实例属性 - 根据定义,不,你不能。这听起来像是一个XY问题 - 你究竟在努力实现什么* – Jamiec

+1

JavaScript是一种动态语言。你似乎想要一个静态的。 TypeScript可能会给你你需要的。 – glennsl

+1

_“我不能做。”_为什么? – guest271314

在这种情况下,是否有可能访问hello

不是没有使用JavaScript解析器(就像IDE试图推断实例mbmers一样)。正如你所说,hello直到/除非创建一个实例都不作为属性存在。通过解析器,您可以(通常)确定属性名称,可能有时是其初始值,但仅此而已。

+0

即使使用解析器,“this [some + expression] ='value''仍然有可能并且基本上不可能被捕获。 – deceze

+0

@deceze:因此“通常”:-) –

+0

或'let self = this; self.foo ='酒吧';'...对不起,只是在这里的各种场景堆... :) – deceze