2016-12-03 91 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