Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打字稿-“;这";关键词错误_Javascript_Oop_Typescript - Fatal编程技术网

Javascript 打字稿-“;这";关键词错误

Javascript 打字稿-“;这";关键词错误,javascript,oop,typescript,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()

我在这里做一个简单的例子,我在使用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”关键字上的Typescript时出错{create:this.create}

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


错误:在访问派生类的构造函数中的“this”之前必须调用“super”。尝试包装
this。在匿名函数中创建
函数

constructor(width?:number, height?:number){
  super(width, height, Phaser.AUTO, 'PhaserDemo', {
    create: () => this.create(),
  });
}
  • 删除对该
(?)的即时调用
  • 修复了create回调中可能未定义的
    ,请参阅:

  • 是,这样错误就消失了,它可以编译,但根本不进入函数。但是如果我这样做->构造函数(宽度?:数字,高度?:数字){super(宽度,高度,Phaser.AUTO,'PhaserDemo',{create:()=>{this.state.add(“preload”,preload,true);}}}}}它工作得很好。