如何切换由类实例化的对象的布尔值? JavaScript的

时间:2018-04-28 19:19:01

标签: javascript class properties boolean

我试图在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属性?

1 个答案:

答案 0 :(得分:2)

它不应该是玩家的属性,而是游戏状态的属性,例如:

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')]);