Javascript 当我要分配变量JS时,分配中的左侧无效
当我想更改受损生物的当前生命值时,我在Javascript 当我要分配变量JS时,分配中的左侧无效,javascript,Javascript,当我想更改受损生物的当前生命值时,我在bioter.js中的职业攻击返回错误分配中的无效左手侧AttackTest.js是一个单元测试,当我想检查损坏单元的当前hp时。如何修复此错误 bioter.js import CreatureStatistics from './creatureStatistics.js' export default class Creature { constructor(_name, _attack, _armor, _maxHp, _moveRange
bioter.js中的职业攻击返回错误分配中的无效左手侧AttackTest.js
是一个单元测试,当我想检查损坏单元的当前hp时。如何修复此错误
bioter.js
import CreatureStatistics from './creatureStatistics.js'
export default class Creature {
constructor(_name, _attack, _armor, _maxHp, _moveRange) {
this.stats = new CreatureStatistics(
(_name || 'Smok'),
(_attack || 1),
(_armor || 1),
(_maxHp || 10),
(_moveRange || 100))
this.currentHp = this.stats.getMaxHp();
}
attack(_defender, _attacker) {
_defender.stats.getMaxHp() = _defender.stats.getMaxHp() - _attacker.stats.getAttack() + _defender.stats.getArmor() //<= Invalid left-hand side in assignment
}
getCurrentHp() {
return this.currentHp
}
}
creatureStatistic.js
export default class CreatureStatistics {
constructor(_name, _attack, _armor, _maxHp, _moveRange) {
this.name = _name;
this.attack = _attack;
this.armor = _armor;
this.maxHp = _maxHp;
this.moveRange = _moveRange;
}
getName() {
return this.name
}
getAttack() {
return this.attack
}
getArmor() {
return this.armor
}
getMaxHp() {
return this.maxHp
}
getMoveRange() {
return this.moveRange
}
}
因为这一行:
_defender.stats.getMaxHp() = _defender.stats.getMaxHp() - _attacker.stats.getAttack() + _defender.stats.getArmor() //<= Invalid left-hand side in assignment
您不能为函数/方法调用的结果赋值。您需要使用属性本身.maxHp=42
,或者为其创建一个setter.setMaxHp(42)
现在函数returnattacker.attack(defender,attacker)undefined attackTest.js:10 defender.getCurrentHpƒgetCurrentHp(){return this.currentHp}
你希望它返回什么?在开始攻击后
生物需要损失一些生命,他的基础生命是100,在此之后,我想检查攻击后他有多少生命getCurrentHp(){返回this.currentHp}
如果(defender.getCurrentHp()!==90){throw'异常:=>生物nie zadala poprawnie obrazen'}
我需要在攻击后保存他的生命值,而这个。当前的生命值就是为了这个
_defender.stats.getMaxHp() = _defender.stats.getMaxHp() - _attacker.stats.getAttack() + _defender.stats.getArmor() //<= Invalid left-hand side in assignment
this.currentHp = _defender.stats.getMaxHp() - _attacker.stats.getAttack() + _defender.stats.getArmor()