2006/09/11 [月]
Javascript ではオブジェクトのプロパティには次のようにアクセスできます。
var obj = { "a": "string", "b": 3, c: true, "0val": "0 value" };
obj.a = "new string";
しかし、obj の 0val プロパティーにアクセスしようとして、obj.0val
や obj."0val"
と書いてもエラーになってしまいます。なぜなら、プロパティー名には識別名が要求されているからです。これでは、0val にアクセスできません。そこで、別の表記法を使用します。
obj["0val"] = "new 0 value";
そう、(連想)配列のように記述します。これで識別名として無効な添え字でもアクセスすることが出来ます。
この結果から、配列に関しては obj[index] のようなアクセスしか出来ないことがわかります。
まとめ: Javascript では obj.name == obj["name"]
であり、単なる表記方法の違いでしかない。obj.name の形式では name は識別名として有効な名前でなくてはならない。
by seclan