使用模板文字更新JavaScript类

问题描述

我对JavaScript类的了解有限,并且发现很难找到有关它们的优质资源来帮助我完成项目。

我为回合制游戏创建了以下类别;

class Player {
    constructor(name,image,location,isTurn) {
      this.name = name;
      this.image = image;
      this.location = location;
      this.isTurn = isTurn;
      this.cssClass = "player";
      this.weapon = "unarmed";
      this.health = 100;
  
      //deal with default weapon here
    }
    // get css class
    getCSSClass() {
        return this.cssClass;
      }
      getPosition() {
          return this.location;
        }
  
      // set position
      setPosition(identifier) {
         this.location = identifier;
         return this.location.toString();
      }
    }
    
  
  let player1 = new Player("player2","css/player1.png","",true);
  let player2 = new Player("player2","css/player2.png",false);
  

我还创建了一个功能,可以在棋盘上的随机位置生成玩家。每个图块都有一个唯一的编号ID(介于1到150之间)。随机数功能可以正常工作。

下面是我遇到的我的派生函数;

function spawnPlayer(n,identifier) {
    let playerSpawn = document.getElementById(identifier);
    playerSpawn = playerSpawn.id;
    console.log(playerSpawn)


    if (occupied.includes(playerSpawn) == true) {

    spawnPlayer(n,identifier);

    } else {
       
   `player${n}`.setPosition(playerSpawn);
    console.log(("player" + `${n}`).getPosition());
    playerArray.shift();
    playerArray.unshift(playerSpawn.id);
    playerSpawn.classList.add("player");
    playerSpawn.classList.add("player" + n.toString());
    //console.log("player" + n);
    //console.log(player2.image);
    playerSpawn.style.setProperty(
        "background-image","url(css/player" + n + ".png)"
    );
    playerSpawn.style.setProperty("background-size","cover");
    }
}
spawnPlayer(1,randomise());

我在理解如何使用模板字面量方面遇到麻烦,因为我可以将播放器1和2重复使用此功能作为参数。

`player${n}`.setPosition(playerSpawn);

这是导致我出现问题的地方。我当前的错误是

未捕获的TypeError:n.setPosition不是函数 在spawnPlayer

任何人的帮助都将不胜感激,如果有人可以推荐一些探索JavaScript类实现的材料也将非常有帮助

谢谢

解决方法

player1player2设置为某些对象的属性。然后,您可以动态访问它们:

const obj = {
  player1: new Player(...),player2: new Player(...),}

// ...

obj[`player${n}`].setPosition(playerSpawn)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...