いくつかのプロパティを設定するオブジェクト コンストラクターがあり、後でそれらを使用して文字列を連結し、DOM に書き込みます。これが機能する場合もあれば、機能しない場合もあります。
function Fighter(name, level, attackPts, defencePts, imgSource) {
// TRUNCATED PROPERTY ASSIGNMENTS AREA:
this.attackPts = attackPts;
this.defencePts = defencePts;
// DOM ELEMENT CONSTRUCTORS:
this.img = "style='background: #444 url(" + imgSource + ") no-repeat center'";
this.char_card_name = "<h3>" + this.name + "</h3>";
this.char_card_hitdef = "<h4>" + this.attackPts + "/" + this.defencePts + "</h4>";
this.char_card = "<div class='fighter " + faction + "' " + "id='" + this.name + "'>" + this.img + this.char_card_name + this.char_card_hitdef + "</div>";
後のゲーム関数で、この「Fighter」オブジェクトのattack
とポイントを変更すると、期待どおりに機能し、連結されたプロパティも更新されることをテストで確認します。. . . 最後の文字列まですべてをまとめて表示します。defense
console.log()
this.char_card = "<div class='fighter " + faction + "' " + "id='" + this.name + "'>" + this.img + this.char_card_name + this.char_card_hitdef + "</div>";
このプロパティをログに記録すると、以前のプロパティで正常に更新されていても、それらの攻撃と防御の数値は変動しません。this.char_card_hitdef
ここで何を見落とすことができますか?スコープまたは変数参照の問題を探して Web 中をクロールしましたが、ログ ステートメントを見ると、この 1 つのピンチ ポイントに戻ってきます。