У меня есть конструктор объекта, который устанавливает некоторые свойства, а затем использует их для конкатенации строки для записи в 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>";
Позже в игровой функции я изменяю очки attack
и defense
для этого объекта "Fighter", и это работает, как и ожидалось, и мои 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
Что я мог здесь пропустить? Я просканировал всю сеть в поисках проблем с областями видимости или переменными ссылками, но мои операторы журнала возвращают меня к этому единственному критическому моменту.