javascript - 如何切换由类实例化的对象的布尔值?Javascript
问题描述
我正在尝试在 2 名玩家之间实现基于回合的游戏,并且我有一个属性可以指示轮到谁。
class Player{
constructor(name){
this.name = name;
this.playerTurn = true;
}
}
var p = new Player('mike');
var k = new Player('jeff');
除了k.playerTurn = false;
在实例化后立即运行之外,有没有更优雅的方式来在实例化时翻转玩家 k 的 playerTurn 属性?
解决方案
轮到谁不应该是玩家的属性,而是游戏状态的属性,例如:
class Game {
constructor(players) {
this.players = players; // Player[]
this.currentPlayer = players[0];
}
nextTurn() {
// Or whatever your logic for rotating players is…
this.players = this.players.concat([this.players.shift()]);
this.currentPlayer = this.players[0];
}
}
const game = new Game([new Player('jeff'), new Player('mike')]);
推荐阅读
- python - 我可以散列基于文本的数据并将其用于 scikit learn 的插补吗?
- google-apps-script - 定义输出查询结果的范围
- c# - ComboBox 在表单加载时显示错误的值,然后设置错误的值来记录
- templates - Joomla 3 Plugin - 如果未在菜单级别定义,如何覆盖模板
- arrays - SwaggerHub 编辑器在示例的最后和开头显示额外的数组括号?
- r - R 3.6.1 配置中缺少“-fdebug-prefix-map”
- reactjs - react-livechat 不适用于 react-snapshot
- python - 获取分组数据中特定列的标准偏差
- javascript - 更新 onChange 事件并触发 onChange 事件 javascript
- fullpage.js - 将 onLeave 添加到 fullpage.js