javascript评估-如何为对象属性赋值?

javascript评估-如何为对象属性赋值?,javascript,Javascript,可能重复: 我有一个这样的物体 var localAppConfig = { wallet:0, paySomeone:0, payBills:0, accounts:0, moveMoney:0, alerts:0, offers:0, checkIn:0 }; 我想为这个localAppConfig 需要设置的元素是从服务器提供的json中检索的 比如说,我想为钱包、付费对象、账单、提醒、优惠、签到设置值=1 这些都是从js

可能重复:

我有一个这样的物体

var localAppConfig = {
    wallet:0,
    paySomeone:0,
    payBills:0,
    accounts:0,
    moveMoney:0,
    alerts:0,
    offers:0,
    checkIn:0
};
我想为这个
localAppConfig

需要设置的元素是从服务器提供的
json
中检索的

比如说,我想为钱包、付费对象、账单、提醒、优惠、签到设置值=1

这些都是从json的
like

for(var i=0;i<len;i++){
        var name = list[i].handle;
        var accessor = eval('localAppConfig.'+name);
        eval('localAppConfig.'+name)=1;
    }

对于(var i=0;i您应该这样做:

var accessor = localAppConfig[name];
localAppConfig[name] = 1;
不要使用
eval()
。可以通过引用对象中该值的索引来添加属性。如果该属性不存在,则将创建该属性,否则将覆盖该值

请尝试以下操作:

// localAppConfig[list[i].handle] = 1; 

for(var i=0;i<len;i++){         
    localAppConfig[list[i].handle] = 1;
} 

请尝试
localAppConfig[name]=1;


它只是一个javascript对象,无需在其上使用
eval()

无论如何:请尝试使用以下大小:

localAppConfig[name] = 1;//where name is a variable of choice, it's value will be used as the propertyname
再说一遍:

-当你只有评估锤时,一切看起来都像你的拇指。 –Brendan Eich回应:我们应该鼓励使用eval()而不是函数构造函数来动态创建函数

但为什么要使用属性列表呢?您也可以在
循环中为…使用
:对于像您这样的对象,这完全没关系。
只要您选中
。hasOwnProperty

for (var prop in localAppConfig)
{
    if (localAppConfig.hasOwnProperty(name))
    {
        //set, delete... do whatever
    }
}

邪恶在世界上游荡:“当你只有一把评估锤时,一切看起来都像你的大拇指”noooooooooooooooooo!仇恨
eval()
伙计们,别恨我:p@AdityaParab:我不恨任何人,也不恨
eval
,我恨
eval
被许多人滥用的方式:唯一可以接受的
eval
是在旧浏览器中支持
JSON
。(ps:我不反对投票)@EliasVanOotegem:It ok:)。。。发布此内容时,我不知道访问对象属性的其他语法。。谢谢你的帮助:)
for (var prop in localAppConfig)
{
    if (localAppConfig.hasOwnProperty(name))
    {
        //set, delete... do whatever
    }
}