2017-10-10 82 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'它。