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

JavaScript: Unexpected token while declaring method outside an object

本文关键字:意外 令牌 方法 声明 对象 JavaScript      更新时间:2023-09-26

我正在努力与我想要声明的方法。我得到的只是一个"意外令牌{"。我不明白,我已经被封锁两天了。现在,我真的需要继续做这件事了。

有人能帮我吗?

这里是陨石: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

甚至指出了{的具体字符位置

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

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

明智地使用控制台和jshint等工具,加上一点常识,可以很容易地跟踪这类语法错误。你的编辑也可以提供帮助;大多数好的文章都会突出这些错误。例如,我的编辑将冒犯的{涂成红色,并提供"丢失;之前的声明"。你用的是什么编辑器,它有语法高亮吗?