オブジェクトのプロパティのインデックス付け
JavaScript 1.0 では、オブジェクトのプロパティを、そのプロパティ名や順序のインデックスで参照できます。しかしながら、JavaScript 1.1 以降では、最初にプロパティをその名前で定義すると、常にその名前で参照しなければならず、また、最初にプロパティをインデックスで定義すると、常にそのインデックスで参照しなければなりません。
先の Car というオブジェクトの種類の例のようにコンストラクタ関数を用いてオブジェクトとそのプロパティを作成したとき、また、それぞれのプロパティを明示的に定義したとき(例:myCar.color = "red"
)に、これは適用されます。そのため、myCar[5] = "25 mpg"
のように、最初にインデックスを用いてオブジェクトのプロパティを定義した場合、myCar[5]
のようにそのプロパティを後から参照できるようになります。
このルールの例外は、forms
配列のように HTML から反映されたオブジェクトです。これらの配列内のオブジェクトは、その順番を表す数(文書内のどこにあるかに基づく)か、またはその名前(定義されている場合)のどちらかで常に参照できます。例えば、文書内の 2 番目の <FORM>
タグが "myForm" という NAME
属性を持っている場合、document.forms[1]
や document.forms["myForm"]
や document.myForm
とすることでそのフォームを参照できます。