JavaScript > Kanasan.JS prototype.js CodeReading#5が終了致しました
2008年06月15日
Kanasan.JS prototype.js CodeReading#5 が無事終了致しました。
ご参加頂いた皆様お疲れさまでした、ありがとうございました。
今回、私自身は久しぶりの参加だったのですが、簡単に発表しましたので、以下に資料をおいておきます。
QueryNote - jQuery based presentation tool
jQueryベースのプレゼンツールを少し作っているので、簡単ですが発表させて頂きました。 まだ作りかけなので、閲覧環境によっては表示が崩れるかも知れませんが、ご容赦下さい。
動作は以下で確認しております。
- Win IE6,7
- Win firefox2
- Win Opera9.2
- Win Safari3.1
- Linux firefox2
- Linux Opera9.2
- Mac 自分では確認出来ていませんが、動作しているようです。
以下、簡単に感想と気になった所のメモです。
Prototype.js Code Reading
- ver1.6.0.2が対象
- 主にDOM周りのソースを読む
- 前半はElementオブジェクトに対しての、ブラウザ毎の差異を吸収するコード
- IEのバグ対策や、クロスブラウザを考慮したプロパティの取り方は参考になります。
- 後半は主にDOMオブジェクトのセレクター部分
- 恐らくver1.6からだと思うのですが、YUIのSelectorを使用しています。
- 内容はCSS3のセレクターサポート(どこまでかは把握してませんが)とXPATHの実装。
- ネイティブでサポートされているものはそれを使いながら、サポートされていない場合は自前の処理を割り当てるというものです。
全体的に高度な正規表現が多く、難解な内容でした。
YUIのライブラリがPrototype.jsにほとんどそのまま取り込まれているので、Prototype.jsには珍しくコメントとが残っていたり、 コーディングスタイルが異なっている為、なかなか興味深かったです。
あれだけの量のコードを書くのはとても骨が折れたと思います。
残りも僅かになってきましたが、次回はFormエレメントからです。
気になった所
(property in object)
プロパティが存在するか確認出来る
alert( 'document' in window ) // true
参考:JavaScript の in を使って要素の差分を取る - IT戦記
正規表現オブジェクト
(/a/).test('bbaabb')
// true
今まであまり使った事なかったのですが、String.matchではなくて、上記のような書き方も出来ます。 これが便利なのは、引数はオブジェクトなら何でも使える事。
String.match()は文字列のみなので、事前に型チェックが必要ですが、気にせず丸投げできます。
あと、JScript以外なら、下記のような書き方も出来るようです。
/a/.test('bbaabb')
これはびっくりしました。
複数回のmatchは以下のようにする
var r=[];
while( a = (/./g)("abc") ) {
r.push(a);
}
//=> [a,b,c]
DOMのNodeListを取ってくる時
IEはコメントノードを拾ってくる
なので「!」が含まれていないかチェックする必要がある
新しい発見も多く、なかなか充実していました。
最後になりましたが、回線を提供して頂いたYAAさん(いつもありがとうございます)、並びに参加者の皆様ありがとうございました。
posted by 37to at : 20:40 | コメント (0) | トラックバック (0)
コメント
投稿する
トラックバック
トラックバックURI
一覧
この記事に対するトラックバックはまだありません。

この記事に対するコメントはまだありません。