Node.jsにはEventEmitterというのがあり、こいつがかなり重要になる。
だいたい適当にコードをかいてしまうと
var EventEmitter = require('events').EventEmitter;
function C(){};
C.prototype = new EventEmitter();
var obj = new C();
obj.addEventListener("test", function(){ console.log("Wooo") });
みたいな感じで、すべてのオブジェクトにaddEventListenerやらが付与されてかなりいい感じになる。
んでこれをブラウザ上でのJavascriptでも実現したいと思ったので実装した。
コードはgithubにある
だいたい上のコードと同じイメージで使えるので、苦労することはない。
本家EventEmitterとの違いは以下
- EventEmitter#maxListeners はない
- イベントリスナはsetTimeout()を挟んで実行される
なんかしら思いついたら追加で実装したりするし、バグがあったらなおします。ライセンスは放棄で。
