如何从函数访问javascript对象?

如何从函数访问javascript对象?,javascript,json,Javascript,Json,假设我有: var test = {}; test.Data1 = { ...JSON objects here... }; test.Data2 = { ...JSON objects here... }; and so on... 我通常通过以下方式访问这些json对象,然后进行一组调用: this.scope.testData = test['Data1']; 然而,用于测试的may数据越来越大,所以我只想将任何数据传递给函数,并进行如下处理: this.scope

假设我有:

var test = {};
test.Data1 = {
    ...JSON objects here...
}; 
test.Data2 = {
    ...JSON objects here...
};
and so on... 
我通常通过以下方式访问这些json对象,然后进行一组调用:

this.scope.testData = test['Data1'];
然而,用于测试的may数据越来越大,所以我只想将任何数据传递给函数,并进行如下处理:

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

};

但它不起作用。我得到:无法将未定义的属性“fData”设置为“[对象]”。。。我是javaScript新手,如有任何帮助,将不胜感激

问题在于
此.scope.setupData
中的作用域。要访问与此范围相关的变量,您需要再次使用此范围:

/**
 * 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;
};

这就是错误的确切措辞?确实,您似乎遗漏了一系列重要信息。看起来您正试图使用
数据
作为属性名称。。。但是
data
是一个对象。如何调用
setupData