首页 > 解决方案 > 从类返回未定义的新创建的对象

问题描述

我创建了一个 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。我原以为 usingthis可以防止任何未定义的错误。我的课怎么了?

标签: javascript

解决方案


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


推荐阅读