2009-07-29 74 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

相關問題