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
。我原以为 usingthis
可以防止任何未定义的错误。我的课怎么了?
解决方案
addScore() 返回未定义,这就是您在控制台上看到的。这不是错误。
推荐阅读
- audio - FFmpeg 延迟和混合音频流,同时保持整体音量不变
- microsoft-graph-api - OData lambda,any,带逻辑运算符,and 不起作用
- c# - 接口作为参数 - 如何找到哪个类实现它?
- recursion - 了解具有规定数据类型的尾递归
- image - 在 Dockerfile 中编译文件并将其移动到不同的目录(Docker)
- lua - Lua,关于设置__gc的顺序问题
- python - 在python中使用io模块修改列表
- swift - DispatchQueue.main.asyncAfter 不延迟
- javascript - Node.js,Mongodb:如何使用`promise.then`设置全局变量?
- reactjs - TypeError: Object(...) is not a function uuid in reactjs and webpack