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)
现在函数return
attacker.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()