JavaScript:在对象外声明方法时出现意外的令牌

时间:2015-05-16 06:35:57

标签: javascript object methods meteor

我正在努力解决一个我想申报的方法。我得到的只是一个"意外的令牌{"。我没有得到它,我被封锁了2天。现在,我真的需要继续前进。

任何人都可以帮助我吗?

这里是meteorpad: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);
  });
}

2 个答案:

答案 0 :(得分:3)

找到它:

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

您错过了function的{​​{1}}关键字。

答案 1 :(得分:1)

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

Uncaught SyntaxError: Unexpected token {

直接指向

GameFactory.dealHands(players) {

JSHint报告的错误略有不同

line 30, column 31, Missing semicolon

实际上指出{的特定字符位置。

很难让这些工具做更多的事情。根据{{​​1}}可能很难推断出它们可能要声明一个函数。您是否更喜欢以下错误消息?

  

在一个奇怪的地方找到{;也许你试图声明一个函数但省略了{关键字?

明智地使用控制台和jshint等工具,以及一些常识,可以很容易地找到这些语法错误。你的编辑也可以提供帮助;最好的将突出这些错误。例如,我的编辑器为有问题的function红色着色,并提供消息" Missing;在陈述之前#34;。您使用的编辑器是什么,它是否进行语法高亮显示?