这个问题本来希望发到论坛上讨论,但好像博客园没有论坛,可是博客园高手最多,所以小弟希望各位大牛们能看看我的问题,给我思路,就当这是论坛吧。十分感谢。
问题如下:
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个变量并插入对象。问题来了:
- 为什么obj1和obj2声明时就直接报错呢?
- obj没报错,但为什么循环他的属性时,第一个属性直接就叫做“o”,而不是变量o的值"left"呢?
如果我要达到将变量传给对象当属性,将变量值传给对象当属性值的时候,难道只有用:
var o1 = {drt:'left'};
var obj3={drt:o1.drt}
这种办法?可不可以就像我前面说的那么传呢?为什么呢?
希望各位给我讲讲啊,十分感谢