创建一个具有两个属性的新变量的输出?
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.initialHealth
在 enemy.lostHealth
改变之前被完全计算,即在函数 bobAttack()
被调用之前。如果你想要延迟评估,那么你可以使用:
var enemyHealth = function() {
return enemy.lostHealth + '/' + enemy.initialHealth;
}
bobAttack();
console.log(enemyHealth());
我一直在尝试制作一个非常简单和基本的游戏来提高我的 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.initialHealth
在 enemy.lostHealth
改变之前被完全计算,即在函数 bobAttack()
被调用之前。如果你想要延迟评估,那么你可以使用:
var enemyHealth = function() {
return enemy.lostHealth + '/' + enemy.initialHealth;
}
bobAttack();
console.log(enemyHealth());