Phaser 3 中的“this”指的是什么?

kev*_*ang 7 javascript oop this phaser-framework

我是 Javascript 新手,想用 Phaser 3 制作简单的游戏,我发现 Javascript 似乎与 C++ 或 Java 等其他 OOP 语言略有不同。我查看了官方网站和其他一些教程页面中的教程,大部分代码如下:

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

function preload(){
    this.load.img(...)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是什么是?"this"preload()指示到?是不是"game"我们之前定义的意思?

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

pep*_*dip 5

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

要查看 a 的文档,Scene您可以查看此处


scu*_*ffe 2

在代码中,您有this一个指向游戏实例的指针,这就是为什么您可以调用 Phaser 方法来加载资源、调整相机等。

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

  • 在这种情况下,“this”的分配是隐式发生的,因为 Phaser 的编排发生在幕后,除了将其定义为 Phaser 可以在“preload”中调用之外,您不会在自定义代码中“看到”“preload”的调用者。配置`。 (2认同)