Phaser 3中的“ this”是什么?

时间:2018-08-12 09:11:19

标签: javascript oop this

我是Java的新手,并且想使用Phaser 3进行简单的游戏,我发现Java似乎与其他OOP语言(如C ++或Java)有些不同。我在官方网站和其他一些教程页面上查看了该教程,大部分代码如下:

var config = {
    ...
    scene: {
        preload: preload,
        create: create,
        update: update
    }
}
var game = new Phaser.Game(config)

function preload(){
    this.load.img(...)
}

我的问题是"this"中的‍ preload()是什么意思?这是否意味着我们之前定义的"game"

以及如何在控制台中检查对象的类? typeof()只告诉"object"

3 个答案:

答案 0 :(得分:2)

thisPhaser.Scene而非Phaser.Game的实例。
其他答案不正确。该代码正在运行浏览器。

要查看Scene的文档,可以查看here

答案 1 :(得分:1)

在代码中,this是指向游戏实例的指针,这就是为什么您可以调用Phaser方法加载资产,调整摄像机等的原因。

在配置中,您要设置在游戏的预加载步骤中调用哪个函数。当Phaser运行时,它将调用您的函数(恰好也被命名为preload)并将this的范围设置为游戏实例。

答案 2 :(得分:0)

this的值取决于function的范围。在这种情况下,假设该代码正在浏览器中运行,则this等于window对象。

this应该等于该代码拥有的值。

阅读