我一直在尝试制作一个非常简单且基本的游戏来提高我的JavaScript技能。但是,在尝试显示对象运行状况的“比率”时遇到了问题。这是一个类似的代码,因为原始代码太长:

function Person(health) {
    this.initialHealth = health;
    this.lostHealth = health;
}

var bob = new Person(100);
var enemy = new Person(100);

var bobAttack = function() {
    enemy.lostHealth = enemy.lostHealth - 50;
};

var enemyHealth = enemy.lostHealth + '/' + enemy.initialHealth;

bobAttack();

console.log(enemyHealth);


输出是:100/100,而我希望它是例如50/100

最佳答案

您可能希望获得“惰性”评估,但是您会立即获得表达式的值。即,在更改var enemyHealth = enemy.lostHealth + '/' + enemy.initialHealth之前,即调用函数enemy.lostHealth之前,对表达式bobAttack()进行完全求值。如果要延迟评估,则可以使用:

var enemyHealth = function() {
    return enemy.lostHealth + '/' + enemy.initialHealth;
}

bobAttack();

console.log(enemyHealth());

关于javascript - 创建两个属性的新变量的输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31642524/

10-12 23:05