如何动态设置Javascript对象值?

时间:2011-06-22 12:35:03

标签: javascript object properties set

用文字解释这个案子很难,让我举一个例子:

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对象中设置具有变量值的变量属性?

6 个答案:

答案 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时,请将其视为字典。在这种情况下,它有两个键nameage

您可以通过两种方式访问​​这些词典:

  • 像数组一样(例如myObj[name]);或
  • 喜欢属性(例如myObj.name);请注意,某些属性是保留的,因此首选方法。

您应该能够毫无问题地将其作为财产访问。但是,要将其作为数组访问,您需要将该键视为字符串。

myObj["name"]

否则,javascript将假定name是变量,并且由于您尚未创建名为name的变量,因此它将无法访问您期望的密钥。< / p>

答案 5 :(得分:0)

这很简单 myObj.name = value;