2016-12-03 60 views
0

我想用最新的JavaScript,AngularJS和Node.js实现创建我自己的游戏。关于变量赋值和定义的困惑AngularJS JavaScript节点

我立足我的代码按照这里的代码来处理用户和玩家:
https://github.com/amirrajan/nodejs-against-humanity

我注意到,游戏ID和playerId被用作参数最server.js和game.js功能。对我而言,这似乎是合适的。

我想了解playerID是如何分配给每个玩家的。没有Player类定义/维护这个变量。

玩家ID分配给每个玩家在哪里?

回答

0

这是node.js/javascript应用程序的常见属性。尽管在javascript中定义类是绝对有可能的,但数据通常以JSON对象的形式传递。我不确定该示例应用程序采用哪种方式,但它可能很可能是JSON。例如,玩家可能是这样的JSON对象:

{ 
    id: 121525, 
    name: "New Player", 
    etc: .... 
} 

因此可能没有专门定义任何类的类。如果这个示例做得很好,它会为玩家提供某种类型的模型/类文件,例如setName(),subtractCash()或其他适合该游戏中玩家的方法,但它可能不会。

数据可能存储在数据库中,当从数据库中检索数据时,可将其加载到内存中可传递的JSON对象中。这可能会导致编程人员从其他非松散类型的语言转向使用JavaScript,如c#/ Java。

+0

谢谢,山姆。所以,在这里从server.js这一行: game = Game.joinGame(game,{id:req.body.playerId,name:req.body.playerName}); 'player'似乎被隐式定义在那一行中,并且joinGame函数似乎在其参数中接受两个属性'player'?所以,'player'在joinGame函数中被内联定义并且被用于这样的情况? –

+0

我的荣幸。我看到那里发生了什么。是的,玩家正在通过任意定义的JSON对象“{id:req.body.playerId,name:req.body.playerName}”被传入joinGame。如果你看第76行,JSON对象被添加到一个名为“players”的JSON对象数组中:game.players.push(joiningPlayer);玩家被创建在第41行,如下所示:game.players = [];正如你所看到的,它构造得非常松散。创建一个空白数组(它可以容纳任何东西:字符串,整数或JSON对象),并添加JSON对象来跟踪播放器(没有任何类)。 – Sam