オブジェクトがそれをリッスンするようにイベントを作成しようとしています。次の例を考えてみましょう。
var moon;
moon = document.createEvent("Event");
moon.initEvent("Event",true,true);
var Dog = function (name) {
this.name = name;
document.addEventListener("Event",this.bark,false);
};
dog.prototype.bark = function() {
console.log(this.name + ': Awooooooof Woof!');
};
var spot = new Dog("Spot");
var dot = new Dog("Dot");
//invoke
document.dispatchEvent(moon);
私は次のような出力を受け取ることを期待しています:
スポット:Awooooooof Woof!
ドット:Awooooooof Woof!
しかし、私が得るものは次のとおりです。
未定義:Awooooooof Woof!
私の例の何が問題になっていますか?Dogのすべてのインスタンスが持つリスナーを登録するにはどうすればよいですか?