javascript - Typescript - "this"关键字错误

标签 javascript oop typescript

我在这里做一个简单的例子,我使用 Phaser 库。

    module GameName {
    class GameName extends Phaser.Game{

        constructor(width?:number, height?:number){
            super(width, height, Phaser.AUTO, 'PhaserDemo', {create:this.create});
        }

        create() {
            this.state.add("Preloader", Preloader, true);
        }
    }

    window.onload = () => {
        new GameName(1280, 720);
    }
}

所以我在此处编译“this”关键字 {create:this.create} 的 Typescript 时遇到错误

我不明白我做错了什么。我刚刚将 Phaser.Game 类的构造函数调用到 GameName 类的构造函数中,并将 Phaser.Game 类的创建函数作为参数添加到 super 构造函数。

错误:在派生类的构造函数中访问“this”之前必须调用“super”。

最佳答案

尝试将 this.create 函数包装在匿名函数中

constructor(width?:number, height?:number){
  super(width, height, Phaser.AUTO, 'PhaserDemo', {
    create: () => this.create(),
  });
}

关于javascript - Typescript - "this"关键字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42267693/

相关文章:

c++ - 如何扩展一个函数

javascript - 如何通过单击多选向表添加行

javascript - C++ 函数原型(prototype)在 JavaScript 中等效吗?

javascript - 为什么 enzyme 无法测试 react Highcharts ?

java - 从 java 方法返回两个值

angular - 如果 'router-outlet' 是 Angular 组件,则验证它是否是该模块的一部分。 Angular 12

javascript - 从 Windows 运行时组件调用可移植代码库中的异步方法

c# - 具有值类型和引用类型的对象将如何存储在 .NET 中?

angular - Angular 2 中的单例服务

typescript - 将对象解构与 TypeScript 中的参数属性相结合