1

我想在 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 }
4

1 回答 1

4

您拥有的不是对象数组,而是对象字面量。通常,它的属性将被访问为theObj.property,但 JavaScript 提供了一种替代语法,theObj["property"]当您需要对属性名称(如 )执行字符串操作等操作时theObj["property_" + numberVar],或对点表示法中无效的属性(如数字属性theObj[12] = "twelve")进行操作时

如果您通过 访问属性[],则需要引用字符串["foo"],否则解析器将寻找一个名为的变量以foo插入其中。但是,使用点表示法可以更好地访问这个简单的字符串属性:

if ( condition ) {
  theObj.foo = newVal
  return theObj // returns { foo: val1, bar: newVal } 
}
于 2012-08-15T15:46:04.750 回答