オブジェクトのプロパティにアクセスするには、2つの異なる表記法があります
- ドット表記:myObj.prop1
- ブラケット表記:myObj ["prop1"]
ドット表記は高速で簡単ですが、実際のプロパティ名を明示的に使用する必要があります。置換なし、変数など
ブラケット表記はオープンエンドです。文字列を使用しますが、正当なjsコードを使用して文字列を生成できます。文字列をリテラルとして指定するか(この場合はドット表記の方が読みやすくなります)、変数を使用するか、何らかの方法で計算します。
したがって、これらはすべて、prop1という名前のmyObjプロパティを値Helloに設定します。
// quick easy-on-the-eye dot notation
myObj.prop1 = "Hello";
// brackets+literal
myObj["prop1"] = "Hello";
// using a variable
var x = "prop1";
myObj[x] = "Hello";
// calculate the accessor string in some weird way
var numList = [0,1,2];
myObj[ "prop" + numList[1] ] = "Hello";
落とし穴:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr:キーを計算または参照する場合は、ブラケット表記を使用する必要があります。キーを明示的に使用している場合は、ドット表記を使用して単純な明確なコードを作成します。
注:他にもいくつかの適切な正解がありますが、私は、JSのオンザフライの癖に慣れていないことが原因で、少し簡単だと思っています。これは一部の人にとって役立つかもしれません。