我想在javascript中执行以下操作,但有一些关于我不理解的语法:
var theObj = { foo: val1, bar: val2 }
if ( condition ) {
theObj[foo] = newVal
return theObj // returns { foo: val1, bar: newVal }
}
return theObj // returns { foo: val1, bar: val2 }
答案 0 :(得分:4)
您拥有的不是对象数组,而是对象文字。通常,它的属性将作为theObj.property
访问,但当您需要对属性名称(如theObj["property"]
)执行字符串操作等操作时,JavaScript会提供theObj["property_" + numberVar]
的替代语法,或者属性在点表示法中无效(如数字属性theObj[12] = "twelve"
)
如果您通过[]
访问该属性,则需要引用字符串["foo"]
,否则解析器将查找名为foo
的变量以插入其中。但是,使用点表示法可以更好地访问这个简单的字符串属性:
if ( condition ) {
theObj.foo = newVal
return theObj // returns { foo: val1, bar: newVal }
}