使用预定对象在运行时分配变量

时间:2012-08-13 16:14:58

标签: javascript jquery

我有以下对象:

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以包含正确的对象而不是其名称的字符串表示?

2 个答案:

答案 0 :(得分: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];
    });
});

答案 1 :(得分: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];
        ...
    }
}