类中的新创建的对象返回未定义

时间:2019-04-09 11:30:24

标签: javascript

我创建了一个Player类,其中包含一些方法。我可以成功创建一个播放器,但是当我在新创建的播放器上调用另一个方法时,我得到undefined

虽然Player类最终将在另一个类class Scoreboard extends Player中使用,但我看不到为什么不能在Player对象上调用函数。

这是我的Player课:

class Player {

  constructor(player_id, score) {
   this.player_id = player_id;
   this.scores = [score];
   this.total = score;
    }

  addScore(score) {
    this.total += score;
    this.scores.push(score);
  }

  averageScore() {
    return this.scores.length ? this.total / this.scores.length : 0;
  }

  resetScore() {
    this.scores = [];
    this.score = 0;
    }

  };

我使用以下内容创建一个新的播放器:const john = new Player(2, 50);并调用john,在控制台中它返回:

Player {player_id: 2, scores: Array(1), total: 50}
player_id: 2
scores: (2) [50, 70]
total: 120
__proto__: Object

此后,我立即致电john.addScore(70)并获得undefined。我本以为使用this可以防止任何未定义的错误。我的班怎么了?

1 个答案:

答案 0 :(得分:2)

addScore()返回未定义,这就是您在控制台上看到的内容。这不是错误。