JavaScript: 在对象外部声明方法时出现意外标记

JavaScript: Unexpected token while declaring method outside an object

我为要声明的方法苦苦挣扎。我得到的只是一个 "Unexpected token {"。我不明白,自 2 天以来我就被封锁了。现在,我真的需要继续做这件事了。

谁能帮帮我?

这里是流星垫:meteorpad.com/pad/6TnXLxumi68Kr6ioA/。 这里是相关部分:

GameFactory = {};    
GameFactory.createGame = function (playersIds) {
  var players = initPlayers(playerIds);

  GameFactory.dealHands(players) ;

  return {
    players: players,
    isRunning: true,
    startedOn: new Date()
  };
};


function initPlayers(playersIds) {
  var o = {};

  playersIds.forEach(function (id) {
    o[id] = {
      playerId: id,
      hand: [],
      target: 0,
      score: 0
    };
  });

  return o;
}

GameFactory.dealHands(players) {
  var card = {value: 'toto'};
  Object.keys(players).forEach(function (id) {
    players[id].hand.push(card);
  });
}

找到了:

GameFactory.dealHands = function (players) {
  var card = {value: 'toto'};
  Object.keys(players).forEach(function (id) {
    players[id].hand.push(card);
  });
}

您缺少 GameFactory.dealHandsfunction 关键字。

对我来说,在 Chrome devtools 中,我得到了错误

Uncaught SyntaxError: Unexpected token {

直接指向行

GameFactory.dealHands(players) {

JSHint 报告的错误略有不同

line 30, column 31, Missing semicolon

竟然指出了{.

的具体字符位置

很难要求这些工具做更多的事情。很难期望他们根据 { 推断出您可能想要声明一个函数。您希望收到如下所示的错误消息吗?

Found a { in an odd place; perhaps you were trying to declare a function but omitted the function keyword?

明智地使用控制台和 jshint 等工具,再加上一点常识,可以很容易地找出这些语法错误。您的编辑也可以提供帮助;大多数好的人会突出显示此类错误。例如,我的编辑将违规的 { 涂成红色,并提供消息 "Missing ; before statement"。您使用的是什么编辑器,它是否进行语法高亮显示?