我一直在尝试制作一个非常简单且基本的游戏来提高我的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/