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

あなたが持っているのはオブジェクト配列ではなく、むしろオブジェクトリテラルです。通常、そのプロパティは としてアクセスされますが、JavaScript は、プロパティ名の文字列操作などの操作を行う必要がある場合 ( など)、またはドット表記で無効なプロパティ (数値プロパティなど)theObj.propertyの代替構文を提供します。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 に答える