第三回roppongi.jsに参加しました。簡単に内容をメモっときます。
Roppongi.JS#3 jQuery Code Reading - 2008/06/17 - Roppongi.JS
メモ
今日は87行目から開始。
90:size()
size()でlengthを返すようにしてる。lengthにはDOMの数が入っている。
99:get()
- 引数なし
- Arrayを返す
- 引数あり
- 引数の位置のDOMを返す
1129:makeArray()
get()で使われている内部用メソッド。
オブジェクトが配列っぽいかそうでないかのチェック部分
makeArray: function( array ) { var ret = []; if( array != null ){ var i = array.length; if( i == null || array.split || array.setInterval || array.call ) // ここについて //... }
String, Window, Functionオブジェクトはlengthプロパティがあるので、それぞれ特有のプロパティをチェックして判別している。
- String.split
- window.setInterval
- Function.call
なんでこんなチェックしてるの?他に方法ないの?と皆さん議論。
- instanceofだと、ブラウザによってはwindowがチェックできない(IE, safari)
- typeofだとjQueryオブジェクトがチェックできない。
- フレームなどから他の文書のwindowを参照したときなども考えている?
三つ目はよくわかりませんでしたが、これしか方法ないっぽいねという感じに。
111:pushStack
内部用のメソッド。elementsをstackに入れて保存しておく用らしい。
261:end
jQueryオブジェクトを連鎖的に呼び出していった際に、現在の洗濯状態を破棄して一つ前の状態に戻す。pushStackで突っ込んだ一つ前のオブジェクトを返している。
125:setArray
内部用メソッド。新しい配列にして、要素をセットしている。
次回
6月24日(火) 21:00〜22:00
137行目のeachから
感想
なんとなくはわかるけど、話が高度になると???ってなってしまうなー。サイ本をもっと読むべき。