JavaScript 第5版 - 7章 オブジェクトと配列(3)

JavaScript 第5版、「7章 配列とオブジェクト」の「7.7.10 JavaScript 1.6で追加されたメソッド」~「7.8 配列のようなオブジェクト」(121~122ページ)を読み進めていきます。

7.7 配列のメソッド

7.7.10 JavaScript 1.6で追加されたメソッド

  • Firefox 1.5に組み込まれたJavaScript 1.6には、indexOf()メソッド、lastIndexOf()メソッド、forEach()メソッド、map()メソッド、filter()メソッドなどのメソッドが配列に追加されている。

この項は少し古い内容なので補足しておきます。Firefox 2にはJavaScript 1.7が組み込まれており、1.6の全ての機能が含まれています。また、Firefox 3では、ECMAScript v4/JavaScript 2に追随するためのJavaScript 1.8が組み込まれる予定です。

7.8 配列のようなオブジェクト

  • 配列はオブジェクトの一種であるが、それはArrayクラス(Objectクラスを継承)のインスタンスであり、lengthプロパティが次のような働きをすることから単なるオブジェクトとは異なるものである。
    • 配列に新しい要素が追加されるとlengthプロパティが自動的に更新される。
    • lengthプロパティに値を設定することで配列の長さを変更できる。

オブジェクトのプロパティにはドット演算子(.)の他に配列演算子([])でもアクセスできることから、非負数の整数値のプロパティを持つオブジェクトにlengthプロパティを設定することによって、オブジェクトを配列のように扱うことも可能です。この場合、当然ながら、Arrayクラスのメソッドが呼び出せない点、lengthプロパティが配列のような働きをしない点で配列とは異なります。

var o = {};  // 空のオブジェクトを生成

var i = 0;  // プロパティ数
while (i < 10) {
    o[i] = i * 10;  // []演算子を使って、整数値のプロパティに値を設定
    i ++;
}
o.length = i;  // lengthプロパティにプロパティ数を設定

var total = 0;
for (var j = 0; j < o.length; j ++) {
    total += o[j];
}

クライアントサイドJavaScriptのdocument.getElementsByTagName()メソッドなどが返すのも、配列のようなオブジェクトです。

コメント (0)

この記事へのコメントはまだありません。

コメントフォーム

トラックバック (0)

この記事へのトラックバックはまだありません。

この記事のトラックバックURI
http://dxd8.com/archives/68/trackback/
この記事のURI
http://dxd8.com/archives/68/