2017-09-07 3 views
0

私は少しイベントに苦労しています。私は、クラスAは、そのイベントをキャッチしなければならないイベントとクラスBを発射し、独自のメソッドにイベントデータを渡したい:スコープ外のイベントコールバック関数

class ClassA { 
    constructor() { 
     window.addEventListener("fire", function (e) { this.fired(e.detail); }); //<--- not working 
    } 

    fired(data) { 
     console.log("fired by: "+data); 
    } 
} 

class ClassB { 
    constructor() { 
     var event = new CustomEvent("fire", { detail: { data: "John Doe" } }); 
     window.dispatchEvent(event); 
     console.log("fired"); 
    } 
} 

new ClassA(); //adds event listener 
new ClassB(); //event dispatch 

答えて

0

これの範囲は、クラスを参照していないように見えます。 ClassAの代わりに矢印機能を使用できます。

window.addEventListener("fire", (e) => { this.fired(e.detail); }) 
関連する問題