-1

我想创建一个Player对象的实例,它作为Weapon对象的一个​​实例嵌套在其中。

例如,player1 应该用匕首开始游戏

我尝试了不同的方法,但嵌套对象(武器)不在播放器实例中。

function Weapon(name, damage) {
  this.name = name;
  this.damage = damage;
}

function Player(name, life) {
  this.name = name;
  this.life = life;

  this.weapon = {
    name: name,
    damage: damage
  };
}

const player1 = new Player("Joueur 1", 100, dagger);

const dagger = new Weapon("Dague", 5);
const sword = new Weapon("Epée", 10);
const axe = new Weapon("Hache", 15);
const flail = new Weapon("Fléau", 20);

将此武器添加为嵌套对象的正确语法是什么?

此外,武器可能会在游戏过程中发生变化。

4

1 回答 1

0

我认为您正在寻找这样的东西,您目前正在尝试传递一个参数,但构造函数并不期待它。我已经给出了 2 个示例来说明如何实现这一目标。

function Weapon(name, damage) {
  this.name = name;
  this.damage = damage;
}

function Player(name, life, weapon) {
  this.name = name;
  this.life = life;

  this.weapon = weapon;
}

const dagger = new Weapon("Dague", 5);
const player1 = new Player("Joueur 1", 100, dagger);

const player2 = new Player("Joueur 1", 100, new Weapon("Dague", 5));

console.log(player1);
console.log(player2);

于 2019-02-07T15:42:43.317 回答