创建一个具有两个属性的新变量的输出?

Output of creating a new variable of two properties over one another?

我一直在尝试制作一个非常简单和基本的游戏来提高我的 JavaScript 技能。但是,我在尝试使用 'ratio' 来显示对象的健康状况时遇到了问题。这是一个类似的代码,因为原始代码太长:

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.

您可能期望 'lazy' 求值,但您会立即获得表达式的值。也就是说,表达式 var enemyHealth = enemy.lostHealth + '/' + enemy.initialHealthenemy.lostHealth 改变之前被完全计算,即在函数 bobAttack() 被调用之前。如果你想要延迟评估,那么你可以使用:

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

bobAttack();

console.log(enemyHealth());