javascript:将变量值传入对象时的问题

这个问题本来希望发到论坛上讨论,但好像博客园没有论坛,可是博客园高手最多,所以小弟希望各位大牛们能看看我的问题,给我思路,就当这是论坛吧。十分感谢。

问题如下:

var o = 'left';
var o1 = {drt:'left'};
var o2 = ['left'];

var obj = {o:333};
var obj1 = {o1[drt]:333};
var obj2 = {o2[0]:333};

代码前三行是变量的几个不同声明方式,即普通变量、对象、数组;后三行分别调用了这3个变量并插入对象。问题来了:

  1. 为什么obj1和obj2声明时就直接报错呢?
  2. obj没报错,但为什么循环他的属性时,第一个属性直接就叫做“o”,而不是变量o的值"left"呢?

如果我要达到将变量传给对象当属性,将变量值传给对象当属性值的时候,难道只有用:

var o1 = {drt:'left'};
var obj3={drt:o1.drt}

这种办法?可不可以就像我前面说的那么传呢?为什么呢?

希望各位给我讲讲啊,十分感谢

 

 



posted on 2012-02-27 18:00  十年灯  阅读(458)  评论(5编辑  收藏  举报