Javascript TypeError 不是函数问题

Javascript TypeError is not a function issue

运行 变成了一个我无法理解的 JavaScript 问题。我正在制作一个 JavaScript "class" 应该在 canvas 上绘制一些东西,如果 window 被调整大小,它应该知道如何调整 canvas 并固定绘制对象的方向。

当我从我自己的测试 html 中使用这个 class 时,一切似乎都工作正常,但是当我将我的 class 提取到一个单独的 .js 文件中以添加为 <script src="myclass.js"></script> 对于其他人的使用,它在调整大小时开始抛出 "TypeError: this.func02 is not a function" 错误。这很烦人,因为 this.func02 显然是一个函数。

此外,还有一个不断调用 func03 的自动收报机,在控制台中我可以清楚地看到定期打印的日志(这些日志发生在 func01 中,由 func03 调用,与 func02 调用它的方式完全相同) .即使在我调整大小时出现 TypeError 之后,这些日志仍会继续工作。

JS:

function myClass() {
    this.func01 = function() {
      console.log("func1");
      //do stuff
    }
    this.func02 = function() { //<- this doesn't work ???
      this.func01();
      //and do more stuff
    }
    this.func03 = function() { //<- this works ???
      this.func01();
      //stuff
    }
    window.addEventListener("resize", this.func02, false);
}

function useMe() {
    objectOfMyClass = new myClass();
    setInterval(tickerThatCallsFunc03ofMyClass, 50);
}

如果有人知道为什么会这样,请写点东西。我很难调试这个。我试图从我的程序中删除所有不相关的代码,如果您需要更多信息post,我会添加它。

注意:这里的问题不是关键字 "this"。也许这是问题的一部分,但不是全部。当它与 html 在一个文件中时,确切的代码有效,但当它被添加到 html 时不起作用

这是在函数内部引用函数而不是 class 以保存对 class 的引用并在函数中使用它:

function myClass() {
    var myclass = this;
    this.func01 = function() {
          console.log("func1");
          //do stuff
    }
    this.func02 = function() { //<- this doesn't work ???
        myclass.func01(); //<- I get typeError on this call
        //and do more stuff
    }
    this.func03 = function() { //<- this works ???
        myclass.func01();
        //stuff
    }
    window.addEventListener("resize", this.func02, false);
}

function useMe() {
    objectOfMyClass = new myClass();
    setInterval(tickerThatCallsFunc03ofMyClass, 50);
}