我有一个JavaScript对象,如下所示:
venue = function(map, dataSet) {
// set some constants
this.VENUE_ID = 0;
this.VENUE_NAME = 1;
this.VENUE_CITY = 2;
this.filterBy = function(field, value) {
...
var filterValue = 'parent.VENUE_' + field;
}
}
现在,问题是我需要filterValue
的值来包含父对象的常量值。目前我已经尝试使用上面显示的方法,然后在尝试访问数组项时引用filterValue,但这只是返回undefined。
如何将filterValue
变量转换为它所代表的常量的值?
答案 0 :(得分:3)
这与变量范围无关。
var filterValue = this['VENUE_' + field];
会做的。
答案 1 :(得分:2)
JavaScript没有“父”的概念。我认为你的范围和背景令人困惑。如果该方法被写为var filterBy(),则必须在不同的“范围”中访问它。但是通过使用'this',你保留在与写入相同的对象中。所以你写的所有内容都是在“这个”背景下。
答案 2 :(得分:1)
试试这个:
var filterValue = this['VENUE_' + field];