首页 新闻 会员 周边 捐助

js:变量传入对象当作属性的问题

0
悬赏园豆:20 [已解决问题] 解决于 2012-02-28 15:28
var o = 'left';

var obj = {o:333};

代码如上,我觉得奇怪的是,此时用for..in循环读取obj的属性时,第一个属性直接就叫做“o”,为什么不是变量o的值"left"呢? o是一个字符串变量嘛

如果我要把变量o的传入到obj里面,该怎么写呢?

本来发到随笔里面的,但看的人少,经人指示发到了这里,希望能得到解决啊,谢谢各位

十年灯的主页 十年灯 | 菜鸟二级 | 园豆:356
提问于:2012-02-28 10:46
< >
分享
最佳答案
2

还是这样写吧
var = obj = {};
obj[o] = 333;

收获园豆:20
码尔代夫iimax | 老鸟四级 |园豆:3138 | 2012-02-28 14:37

一语惊醒梦中人啊。。谢谢

十年灯 | 园豆:356 (菜鸟二级) | 2012-02-28 15:28

@十年灯: 
客气 

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2012-02-28 19:57

正解!

蜗蜗 | 园豆:202 (菜鸟二级) | 2016-06-17 09:39
其他回答(3)
0
var o="left";
eval("var obj = {"+o+":333};");
console.log(obj);//outputs Object { left=333}

这样?

artwl | 园豆:16736 (专家六级) | 2012-02-28 11:30
0

var obj = '{'+o+':333}';

| 园豆:264 (菜鸟二级) | 2012-02-28 11:35
0

学习了。。。

KivenRo | 园豆:1734 (小虾三级) | 2012-02-28 12:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册