为什么在JS中创建的对象构造函数未定义?

时间:2016-11-11 11:46:53

标签: javascript object web frontend

所以我对JavaScript很陌生,最近我偶然发现JavaScript有一种更现代的方式来创建类似于Java和C#的类。我以为我考虑学习一些JavaScript因为这个。现在我意识到JS和Java / C#之间存在细微的差别,而我现在看来这个问题似乎是一个问题。

下面,我定义了一个名为Game的类,作为我正在尝试创建的游戏的全局对象。

    class Game
    {

        constructor(canvas, ctx)
        {
             this.canvas = canvas;
             this.ctx = ctx;

             this.screenManager = new ScreenManager();
             // initialization of more objects
        }

        run()
        {
            setInterval(function(){
                this.screenManager.updateScreen();
                this.screenManager.drawScreen(this.ctx);
            },15);
        }

    }

我似乎遇到的问题是,在我的Game类中调用构造函数后,this.screenManager保留为未定义。我注意到我的Game类的构造函数没有初始化该类中声明的对象。

现在我知道JavaScript以异步方式运行代码,但不确定该事实是否会生效。有了这个说,这个声明错误背后的原因是什么,以及如何解决这个问题。

PS:如果你可以尝试编写没有原型设计的JS类,那绝对值得赞赏!谢谢。

0 个答案:

没有答案