JavaScript、オブジェクト指向プログラミングの超初心者です。
最終的には、
Your hero Christian has 500 in health.
He is carrying a backpack that contains
Flask of Water, weight: 1.2
Apple, weight: 0.3
と表示させたいです。
親クラス: Creature
子クラス: Hero
Hero : ChrstianはBackpackを持っていて、Itemでオブジェクトを作って、Backpack内でItemを追加すること(addItem)とItemを表示する(showItems)ことができるようにしたいです。
Itemは2個あって、
Flask of Water, weight: 1.2
Apple, weight: 0.3です。
Christiannのhealth pointは500
です。
Backpack内のコードに問題があるのではないかと思っています。
Items内に、どんどんitemを追加していけるようにしたいです。(addItem)
Items内のitemを表示させたいです。(showItems)
class Creature { #health=0; constructor(health) { this.#health = health; } get health(){ return this.#health; } } class Item { #itemName = ''; #weight = 0; constructor(itemName, weight) { this.#itemName = itemName; this.#weight = weight; } get itemName(){ return this.#itemName; } get weight(){ return this.#weight; } } class Backpack { #items = []; get items(){ return this.#items; } addItem(item) { this.#items.push(item); } showItems() { for (item of this.#items){ console.log(thing + "<br >"); } } } class Hero extends Creature { #name=''; #myBackpack = ''; constructor(health, name, myBackpack) { super(health); this.#name = name; this.#myBackpack = new Backpack(); } get name(){ return this.#name; } get myBackpack(){ return this.#myBackpack; } toString() { return `Your hero, ${this.name} has ${this.health} in health.<br> He is carrying a backpack that contains ${this.myBackpack}`; } } let hero = new Hero (500, "Christian"); hero.myBackpack.addItem(new Item("Flask of Water", 12), new Item("Apple", 0.3)); console.log(hero.toString());
このコードを実行すると、
Your hero, Christian has 500 in health.<br>
He is carrying a backpack that contains, [object Object]
となり、itemがうまく表示されません。この[object,object]を
Flask of Water, weight: 1.2
Apple, weight: 0.3
とするにはどのような変更が必要なのでしょうか?
アドバイスをどうかよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー