目标:js的属性名可以使用变量
举例:js对象object,当赋给该对象属性的时候可以采用以下方式
var object; object.prop1 = "value1"; object.prop2 = "value2";
object.push({prop1:"value1"}); object.push({prop2:"value2"});
object.push({"<span style="font-family: Arial, Helvetica, sans-serif;">prop1</span>":"value1"});
var prop1 = "prop2"; object.push({prop1:"<span style="font-family: Arial, Helvetica, sans-serif;">value1</span>"});
alert(<span style="font-family: Arial, Helvetica, sans-serif;">object.prop2) </span>
原因已经说过了,无论加不加引号,属性一律当成常量对待.再举一个例子:
var arr=[]; arr['js']='jquery'; arr['css']='oocss'; var obj={}; for(var i in arr) {obj.i=arr[i]; } alert(obj.js);
读者不放猜一下alert会打印什么?
当然是undefined.
大家再猜一下,如果alert(obj.i)会打印什么?
当然是oocss,为什么?因为obj现在只有一个属性i,而且通过两次循环,obj.i前面的被后面的覆盖掉.
如果有需求,需要动态添加属性,也就是说,属性也必须是一个变量才行,如上例代码,alert(obj.js)不是undefined,而是jquery,该如何修改呢?
var arr=[]; arr['js']='jquery'; arr['css']='oocss'; var obj={}; for(var i in arr) {obj[i]=arr[i]; } alert(obj.js);
问题内容: 我正在尝试向angular js的控制器中的div动态添加属性。 一切看起来都很好,在调试器中,我看到该属性已添加,但它不执行我的功能。您是否有任何想法如何向现有div添加属性以及如何使其起作用? 问题答案: 您需要重新编译div http://jsfiddle.net/r2vb1ahy/
我正在尝试使用动态名称访问对象的属性。这可能吗?
问题内容: 我正在尝试使用动态名称访问对象的属性。这可能吗? 问题答案: 有两种方法可以访问对象的属性: 点表示法: 括号符号: 方括号之间的值可以是任何表达式。因此,如果属性名称存储在变量中,则必须使用方括号表示法:
我能想到的唯一方法是,在不进行上述尝试的情况下,从一个字符串中设置每个属性,遍历每个属性,并使用if-else或switch-case逻辑来确定调用哪一个dataSource设置器来设置值。 那么,有没有一种方法可以在不调用每个单独的setter的情况下从字符串中动态设置这些属性呢? 当我在或中设置用户名时,它确实发生了变化,但我认为这可能是针对用户名和密码的,因为我试图设置的其他属性没有效果。
问题内容: 我需要动态设置JS对象属性名称。 结果应为: 问题答案:
问题内容: 如何在Python中动态设置局部变量(变量名是动态的)? 问题答案: 与已经发布的其他答案相反,你不能直接修改并期望它可以正常工作。 修改未定义。在函数外部,当和相同时,它将起作用;在一个函数内部通常将不起作用。 使用字典,或在对象上设置属性: 或者,如果你愿意,可以使用一个类: 编辑:访问不是函数的名称空间中的变量(因此,模块,类定义,实例)通常是通过字典查找来完成的(如Sven在注