首页 > 解决方案 > 我错过了一些基本的东西,还是 Chrome 有错误?

问题描述

我只是为了好玩而尝试一些东西,并遇到了这个问题。我对 JavaScript 非常有经验,并且对于我所缺少的东西是如此明显感到非常困惑。每当我运行此代码时,我都会收到一条错误消息this.Trigger is not a function。我正在使用 Chrome。

class AutomatedProcess {
    constructor(trigger, callback) {
        this.Trigger = trigger;
        this.Callback = callback;
    }
    release(event) {
        if (this.Trigger()) {
            this.Callback(event);
        }
    }
}

let proc = new AutomatedProcess(function() { return true; }, function() { console.log('hi');});

window.addEventListener('resize', proc.release);

更新!proc.release当它不是事件侦听器的回调时调用似乎有效。例子:

class AutomatedProcess {
    constructor(trigger, callback) {
        this.Trigger = trigger;
        this.Callback = callback;
    }
    release(event) {
        if (this.Trigger()) {
            this.Callback(event);
        }
    }
}

let proc = new AutomatedProcess(function() { return true; }, function() { console.log('hi');});

proc.release(); // No error here!

标签: javascriptoop

解决方案


推荐阅读