JavaScript:将字符串转换为预定义变量的值

时间:2009-07-29 10:22:14

标签: javascript scope javascript-objects

我有一个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变量转换为它所代表的常量的值?

3 个答案:

答案 0 :(得分:3)

这与变量范围无关。

var filterValue = this['VENUE_' + field];

会做的。

答案 1 :(得分:2)

JavaScript没有“父”的概念。我认为你的范围和背景令人困惑。如果该方法被写为var filterBy(),则必须在不同的“范围”中访问它。但是通过使用'this',你保留在与写入相同的对象中。所以你写的所有内容都是在“这个”背景下。

答案 2 :(得分:1)

试试这个:

var filterValue = this['VENUE_' + field];