【コードリーディング】backbone.js読んだ感想
ざっくり
コアな部分はそれほど複雑ではありません。 要はEventがすべての鍵を握っていて、具体的には親クラスになります。 (JSなので厳密にいえばプロトタイプになるんだけど)
ListienTo()に登録すると内部的にはon()が使われます。 on()のラッパーみたいなもんです。 これによってコールバックをオブジェクトにバインドします。
発火はバインドに登録した変更がされたときにEventオブジェクトに登録してあるAPIを発火します。 それによって回り回ってバインドしていたコールバック関数が発火される・・・みたいな流れです。
eventsApi()はeventの実行に関することだけを担当して 実際のロジックはその第一引数にもたせています。 -> なんでだろう?わかりづらくないか???
汎用性持たせられるようになんだろうけど。 triggerApi()は実際のトリガーの実行に関する処理
triggerEvents()はトリガーの具体的なビジネスロジック。
みたいな流れ。
思ったこと
.call()使ってるんだるんだよなぁ。 何がメリットなんだろう?
(ev = events[i]).callback.call(ev.ctx, a1, a2, a3);
.prototypeによる拡張って以外と使われていますよね。。 なにがいいんだろう?