用文字解释这个案子很难,让我举一个例子:
var myObj = {
'name': 'Umut',
'age' : 34
};
var prop = 'name';
var value = 'Onur';
myObj[name] = value; // This does not work
eval('myObj.' + name) = value; //Bad coding ;)
如何在JavaScript对象中设置具有变量值的变量属性?
答案 0 :(得分:134)
myObj[prop] = value;
那应该有用。您混淆了变量的名称及其值。但是使用字符串索引对象以获取其属性在JavaScript中可以正常工作。
答案 1 :(得分:40)
myObj.name=value
或
myObj['name']=value (Quotes are required)
这两者都是可以互换的。
编辑:我猜你的意思是myObj[prop] = value
,而不是myObj [name] = value。第二种语法可以正常工作:http://jsfiddle.net/waitinforatrain/dNjvb/1/
答案 2 :(得分:5)
您可以按照设置的方式获取该属性。
foo = {
bar: "value"
}
您设置了值
foo["bar"] = "baz";
获得价值
foo["bar"]
将返回“baz”。
答案 3 :(得分:3)
您还可以创建类似于值对象(vo)的内容;
SomeModelClassNameVO.js;
function SomeModelClassNameVO(name,id) {
this.name = name;
this.id = id;
}
比你可以做的更多;
var someModelClassNameVO = new someModelClassNameVO('name',1);
console.log(someModelClassNameVO.name);
答案 4 :(得分:2)
当您创建对象myObj
时,请将其视为字典。在这种情况下,它有两个键name
和age
。
您可以通过两种方式访问这些词典:
myObj[name]
);或myObj.name
);请注意,某些属性是保留的,因此首选方法。您应该能够毫无问题地将其作为财产访问。但是,要将其作为数组访问,您需要将该键视为字符串。
myObj["name"]
否则,javascript将假定name
是变量,并且由于您尚未创建名为name
的变量,因此它将无法访问您期望的密钥。< / p>
答案 5 :(得分:0)
myObj.name = value;