トラックバック(0)Javascriptの本を読んでいると'配列のようなオブジェクト'という文言をよく見かける。関数の中で参照可能なargumentsというオブジェクトやdocument.getElementsByTagNameメソッド呼び出しによって得られる'NodeList'というオブジェクトなんかがそうだ。Array);こんな風にinstanceof演算子を適用しても'false'になってしまう。{}のようにループ処理が出来るからだ。'配列のような'と言われている以上は実際は配列ではない。ele.slice();やele.push();等の配列用メソッドが使えないということになる。これら'配列のようなオブジェクト'を本物の配列にしてしまう方法がある。Function.applyやFunction.callを使えばいい。Array.prototype.slice.call(ele);こうして得られたele変数は本物の配列になっている。Array);とすれば今度は'true'を得ることが出来る。ele.reverse();等という配列用のメソッドも使えるようになっている。forループを使わずに<li>タグすべてにイベントを設定するのもこんな風に書ける。1.6以上から実装されている。あと上のコードはもちろんIEでは動かない。addEventListenerが実装されていないからだ。