2014-02-20 110 views
0

我不知道是否有enumJavaScript。這裏是我的代碼:javascript通過使用其他屬性初始化屬性

var someObject = { 
    UNLOCK : 0, 
    LOCK : 1, 
    state : this.UNLOCK, 
}; 

這是行不通的。看起來在這個階段this參考還沒有準備好。我如何通過其他屬性初始化屬性?

+0

你的對象只需添加一個新的屬性已經宣佈後看一看[枚舉類型在JavaScript(https://www.inkling.com/read/javascript-definitive-guide-david-flanagan-6th/chapter-9/enumerated-types-in-javascript) –

回答

0

this在您提供的上下文中引用全局對象(window)。如果你想創建枚舉

var someObject = { 
    UNLOCK: 0, 
    LOCK: 1 
}; 

someObject.state = someObject.UNLOCK; 
+0

我有一些面嚮對象語言的經驗,我更傾向於初始化其聲明中的屬性當然在js中沒有所謂的聲明)或者在構造函數中。有沒有辦法實現它? – leon

+0

不適用於簡單的對象文字。如果你正在尋找封裝得更好的東西,那麼你可能想把所有東西都包裝在自己的類中。 –