使用变量动态设置js的属性名
目标:js的属性名可以使用变量
举例:js对象object,当赋给该对象属性的时候可以采用以下方式
varobject; object.prop1="value1"; object.prop2="value2";
也可以采用如下方式:
object.push({prop1:"value1"}); object.push({prop2:"value2"});
在这里prop1作为属性名称,可以直接用,也可以加上引号,比如:
object.push({"<spanstyle="font-family:Arial,Helvetica,sans-serif;">prop1</span>":"value1"});
表达的含义都是一样的,也就是说,prop1只能作为常量被识别,即使它是个变量也没用,例如:
varprop1="prop2"; object.push({prop1:"<spanstyle="font-family:Arial,Helvetica,sans-serif;">value1</span>"});
这样通过object访问prop2会出现什么情况呢?比如:
alert(<spanstyle="font-family:Arial,Helvetica,sans-serif;">object.prop2)</span>
不用问,当然是undefined,而访问object.prop1却是"value1"
原因已经说过了,无论加不加引号,属性一律当成常量对待.再举一个例子:
vararr=[]; arr['js']='jquery'; arr['css']='oocss'; varobj={}; for(variinarr) {
obj.i=arr[i]; } alert(obj.js);