2017-10-10 73 views
0

是否有更簡單的方式使用變量訪問JavaScript中的對象屬性?使用變量訪問JavaScript對象屬性

這裏是行不通:

var element_id = this.data().element_type + 'id'; 

以下是如何做的工作,這似乎令人費解。

var element_id; 
if (element_type == 'assignment') { 
    element_id = this.data().assignmentid; 
} else if (element_type == 'question') { 
    element_id = this.data().questionid; 
} else { 
    element_id = this.data().answerid; 
} 

回答

3

做這樣的:

var element_id = this.data()[element_type + 'id']; 

這是替代語法點屬性訪問,它允許你指定一個字符串表示的屬性的名稱。

你的方法沒有工作的原因是因爲this.data().element_type + 'id'意味着第一評估this.data().element_type然後添加'id'它。