如何动态设置Javascript对象值?

Umu*_*GÖZ 92 javascript properties object 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 ;)
Run Code Online (Sandbox Code Playgroud)

如何在JavaScript对象中设置具有变量值的变量属性?

Mat*_*eer 138

myObj[prop] = value;
Run Code Online (Sandbox Code Playgroud)

这应该工作.您混淆了变量的名称及其值.但是使用字符串索引对象以获取其属性在JavaScript中可以正常工作.


bco*_*lan 43

myObj.name=value
Run Code Online (Sandbox Code Playgroud)

要么

myObj['name']=value     (Quotes are required)
Run Code Online (Sandbox Code Playgroud)

这两者都是可以互换的.

编辑:我猜你的意思是myObj[prop] = value,而不是myObj [name] = value.第二种语法工作正常:http://jsfiddle.net/waitinforatrain/dNjvb/1/

  • 如果对象属性是保留字,则需要第二种语法。 (2认同)

tim*_*ail 5

您可以按照设置的方式获取酒店.

foo = {
 bar: "value"
}
Run Code Online (Sandbox Code Playgroud)

您设置了该值 foo["bar"] = "baz";

获得价值 foo["bar"]

将返回"巴兹".


小智 5

您还可以创建类似于值对象(vo)的对象;

SomeModelClassNameVO.js;

function SomeModelClassNameVO(name,id) {
    this.name = name;
    this.id = id;
}
Run Code Online (Sandbox Code Playgroud)

比你能做的要多。

   var someModelClassNameVO = new someModelClassNameVO('name',1);
   console.log(someModelClassNameVO.name);
Run Code Online (Sandbox Code Playgroud)