読者です 読者をやめる 読者になる 読者になる

Rubyの to_a っぽいもの

javascript
Object.prototype.to_a = function() {
    return Array.prototype.slice.call(this);
};

いろんなオブジェクトを配列へ変換するメソッド。

Array.prototype.slice と Function.prototype.call がミソ。

Array.prototype.slice は上記のドキュメントにあるとおり、引数に始点(と終点)のインデックスの値をとり、その範囲にある要素からなる配列をかえすメソッド。引数をどちらも省略すると0から-1までをコピーして返す。

Function.prototype.call は自身(Functionオブジェクト)を引数で受け取ったオブジェクトのメソッドとして実行する。

配列ではないけど、配列のようなオブジェクトというのはいろいろあって、たとえば NodeList などがそう。(というか、NodeListを配列にしたかった)

NodeList は document.getElementsByTagName などで得られる。

NodeList は item というメソッドをもっていて、引数を添字としてアクセスする(つまり配列のようなふるまいをする)。

ざっくばらんとまとめた。