我创建了一个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
可以防止任何未定义的错误。我的班怎么了?
答案 0 :(得分:2)
addScore()返回未定义,这就是您在控制台上看到的内容。这不是错误。