2009-07-29 49 views
0

的价值我有一个JavaScript对象,看起来像如下:的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

这与变量作用域无关。

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

会做。

1

试试这个:

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

JavaScript有没有 '父' 的概念。我认为你的范围和背景很混乱。如果该方法被写为var filterBy(),则必须在另一个“范围”中访问它。但是通过使用'这个',你保持了与它所写的相同的对象。所以你写的所有内容都在'这个'上下文中。

+0

啊我明白了!那么谢谢你,我不知道。在这之前,我已经手动将父项设置为“this”外部给每个函数。我认为这个原因与使用函数作为回调有关。 – tombazza 2009-07-29 12:49:15

相关问题