事件回调函数超出范围

时间:2017-09-07 15:15:40

标签: javascript oop event-handling

我正在努力争取一些事情。我希望类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

1 个答案:

答案 0 :(得分:0)

看起来这个范围并不是指类。您可以在ClassA中使用箭头功能:

window.addEventListener("fire", (e) => { this.fired(e.detail); })