0

我有以下对象:

var myObj = 
{ 
    prop1 : 'val', 
    prop2 : 'val'
},

hisObj = 
{ 
    prop1 : 'val',
    prop2 : 'val'
},

herObj = 
{ 
    prop1 : 'val',
    prop2 : 'val'
};

现在我运行一个 ajax 调用并将 3 组数据作为数组返回。这些数组中的每一个的键等于myhisher

我如何将正确的对象分配给处理 ajax 响应的函数中的私有变量。我试着这样开始:

function ajax_callback(data)
{
    $.each( data, function( key , value )
    {
        var options = key + 'Obj';

        ...
    });
};

var options在这种情况下是正确的类型string。我将如何动态创建变量options以包含正确的对象而不是其名称的字符串表示形式?

4

2 回答 2

2

我不确定您要在这里实现什么。但是您可能需要在另一个对象中“命名空间”您的对象。怎么样:

var obj = {
    her: {
        prop1: 'val',
        prop2: 'val'
    },
    his: {
        prop1: 'val',
        prop2: 'val'
    }
/// etc

function ajax_callback(data) {
    $.extend( obj, data ); // merge the data with the previously defined object
});

或者,如果您想根据您的响应键从对象中提取一个条目:

function ajax_callback(data) {
    $.each( obj, function( key, val {
        var options = obj[key];
    });
});
于 2012-08-13T16:17:54.100 回答
1

将变量放入对象中,然后使用键作为索引:

var parentObj = 
    myObj: { 
        prop1 : 'val', 
        prop2 : 'val'
    },
    hisObj: { 
        prop1 : 'val',
        prop2 : 'val'
    },
    herObj: { 
        prop1 : 'val',
        prop2 : 'val'
    }
};

function ajax_callback(data) {
    $.each( data, function( key , value ) {
        var options = parentObj[key];
        ...
    }
}
于 2012-08-13T16:24:25.480 回答