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

最佳答案

您拥有的不是对象数组,而是对象文字。通常,其属性将以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 }
}

08-03 23:46