[英]Getting: RangeError: Maximum call stack size exceeded
我正在使用節點js和套接字IO創建游戲。
我正在創建以下玩家
var player = new playa.playa();
player.name = info.name;
player.picture = info.picture;
player.email = info.email;
player.user_id = info.user_id;
player.socket = socket;
然后將播放器添加到我的陣列中
playerPool[info.user_id] = player;
映射,這樣我就可以引用playerPool [user_Id]而不用遍歷循環
然后我想將我的玩家添加到我的游戲中
g.addPlayer(playerPool[info.user_id]);
this.addPlayer = function(player)
{
var self = this;
if(this.max_players > this.current_players.length)
{
self.current_players[player_userid] =player;
}
}
但是,我不斷收到錯誤消息
for(var key in obj) RangeError max call stack size exceeded
我的問題是
如果我打電話
player.user_id
它返回播放器類的用戶ID,所以我知道它是有效的對象。
我從未要求JavaScript遍歷對象,就像將其重新映射到玩家池一樣,只需將其重新映射到游戲類中的玩家數組即可。 但是,這似乎是一個問題。 有沒有人遇到同樣的問題?
for循環的語法僅精確地做到這一點,即遍歷該對象的鍵值
所以語法
for(var key in obj)
將提供該對象的鍵,即屬性。 為了訪問對象值,您需要在此for循環中使用obj [key]。
獲取您創建的數組的值的另一種方法是:
playerPool.forEach(function(player) {
//Over here you get each player in the array
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.