2013-07-01 55 views
0

比方說,我有:如何從函數中訪問javascript對象?

var test = {}; 
test.Data1 = { 
    ...JSON objects here... 
}; 
test.Data2 = { 
    ...JSON objects here... 
}; 
and so on... 

我通常訪問這些JSON對象後面一組的呼叫:

this.scope.testData = test['Data1']; 

然而,可以對測試數據越來越大,所以我只是想通過無論數據我想要的功能,並做如下處理:

this.scope.setupData = function(data) 
{ 
    var fData = test[data]; // is this line correct? 
    ... 
    ... 
    return fData; 

}; 

但它不工作。我得到:不能將屬性「fData」未定義爲「[object Object]」...我是新來的javaScript,任何幫助將不勝感激。

+1

這是錯誤的確切措辭?當然好像你正在拋棄一堆重要的信息。 –

+0

看起來你正在嘗試使用'data'作爲屬性名稱......但data'是一個Object。 –

+2

如何調用'setupData'? –

回答

1

問題是this.scope.setupData內的範圍。要訪問變量涉及到this.scope您需要再次使用this

/** 
* At current scope, "this" refers to some object 
* Let's say the object is named "parent" 
* 
* "this" contains a property: "scope" 
*/ 
this.scope.setupData = function(data) 
{ 
    /** 
    * At current scope, "this" refers to "parent.scope" 
    * 
    * "this" contains "setupData" and "testData" 
    */ 
    var fData = this.testData[data]; // is this line correct? 
    ... 
    ... 
    return fData; 
}; 
相關問題