pig's diary

何でも忘れるので万年初心者ね

コレクションオブジェクトのこと、prototype.jsをはじめて。

prototype.jsを始めた。jsdo.itを読んでいて、読み切りたいコードが使っていたから。jQuery + prototype.jsと、書き方が全然違うようなので、ちゃんとなじめるか不安でいっぱいです。

$A(コレクションオブジェクト)

それで、出て来たのが「$A(コレクションオブジェクト)」。

$A( document.getElementsByTagName( 'div' ) );

http://journal.mycom.co.jp/series/prototypejs/001/index.html

これ知って、あぁなるほどなと思った。最近、jsで立て続けに「はうぁ。これ配列じゃなかったのかよ?」と思ったものが2つあって

  • document.getElementsByTagName('div')
  • arguments

これらが正に、「コレクションオブジェクト」だった。(prototype.jsの中での呼び名なのかも知れないけど)それを配列にするのが$Aの仕事みたい。
書けばすぐだけど「いつも書くのやでしょ?ホゥラ」って話し方が、だいぶprototype.js氏の性格でてる。

prototype.jsをほぼ最初に触って思ったのは

ほんとにJS書いてた人が欲しかった機能が用意されてるライブラリなんだなって思った。あとjQueryの出発点&ゴールのダブルの違いが面白ろすぎる。
あと、includeみたいな判定用のapiがあって、これゲームとか描画系に本当によく使いそう。
prototype.jsってネイティブ寄りなだけあって速そうなイメージあったけど、どうなのかな?と思ったら
prototype.js vs jquery vs mootools vs YUI vs Dojo – WebTecNote
遅い・・・jQueryダントツで速い!やっぱり選ばれるには意味があるんですね。(やばいprototype.jsやってくモチベーションが!)
要所要所で、使うライブラリを選んで行ければ、引き出しが増えて行ってカッコいいもんね。jQueryには自分自身(jQueryオブジェクト)に必要ないAPIはあんまりない感じだから、prototype.jsの多彩さが必要なときが必ずくるはず。Railsやるときとかきっと(ふぅ)

argumentsについてもっと掘り下げてる記事みつけた

arguments を直接的に配列化 - IT戦記あまちゃんさんすごい。__proto__ってちゃんと理解しといたほうがいいのかなぁ。。