所以我对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类,那绝对值得赞赏!谢谢。