2017-10-12 52 views
0

我想要訪問構造函數被調用時將定義的所有類的屬性,以便我可以爲類實現一種接口。是否可以在不初始化類的情況下訪問類屬性?

說我有一個類,它定義了屬性hello,我想訪問它來檢查它已經實現並且分配給它的類型是正確的。問題是,因爲所有非static類屬性都與一個實例綁定在一起,所以如果沒有實例化這個類,我就無法得到它們,這是我無法做到的。

在這種情況下,是否可以訪問hello

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

無實例訪問實例屬性 - 根據定義,不,你不能。這聽起來像是一個XY問題 - 你究竟在努力實現什麼* – Jamiec

+1

JavaScript是一種動態語言。你似乎想要一個靜態的。 TypeScript可能會給你你需要的。 – glennsl

+1

_「我不能做。」_爲什麼? – guest271314

回答

3

在這種情況下,是否有可能訪問hello

不是沒有使用JavaScript解析器(就像IDE試圖推斷實例mbmers一樣)。正如你所說,hello直到/除非創建一個實例都不作爲屬性存在。通過解析器,您可以(通常)確定屬性名稱,可能有時是其初始值,但僅此而已。

+0

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

+0

@deceze:因此「通常」:-) –

+0

或'let self = this; self.foo ='酒吧';'...對不起,只是在這裏的各種場景堆... :) – deceze

相關問題