这种情况很难用语言来解释,让我举个例子:
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 对象中设置具有变量值的变量属性?
myObj.name=value
或者
myObj['name']=value (Quotes are required)
这两个都是可以互换的。
编辑: 我猜你指的是 myObj[prop] = value,而不是 myObj [ name ] = value。第二种语法工作得很好: < a href = “ http://jsfiddle.net/wait inforatrain/dNjvb/1/”rel = “ noReferrer”> http://jsfiddle.net/waitinforatrain/dnjvb/1/
myObj[prop] = value
myObj[prop] = value;
应该可以。你把变量的名字和它的值搞混了。但是用字符串索引一个对象以获得它的属性在 JavaScript 中工作得很好。
就这么简单 myObj.name = value;
myObj.name = value;
当您创建一个对象 myObj时,可以将它看作是一个字典。在本例中,它有两个键: name和 age。
myObj
name
age
你可以通过两种方式查阅这些字典:
myObj[name]
myObj.name
您应该能够以属性的形式访问它,没有任何问题。但是,要以数组的形式访问它,您需要将键视为字符串。
myObj["name"]
否则,javascript 将假定 name是一个变量,并且由于您还没有创建一个名为 name的变量,因此它将无法访问您所期望的键。
您可以按照设置属性的方式获取该属性。
foo = { bar: "value" }
你来设置值 foo["bar"] = "baz";
foo["bar"] = "baz";
为了得到价值 foo["bar"]
foo["bar"]
将返回“ baz”。
您还可以创建类似于值对象(vo)的东西;
Some ModelClassNameVO.js;
function SomeModelClassNameVO(name,id) { this.name = name; this.id = id; }
比你能做的更多
var someModelClassNameVO = new someModelClassNameVO('name',1); console.log(someModelClassNameVO.name);
你可以这样做:
var currentObj = { name: 'Umut', age : 34 }; var newValues = { name: 'Onur', }
Option 1:
currentObj = Object.assign(currentObj, newValues);
选择2:
currentObj = {...currentObj, ...newValues};
选择3:
Object.keys(newValues).forEach(key => { currentObj[key] = newValues[key]; });