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