Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建两个属性相互重叠的新变量的输出?_Javascript_Variables_Properties - Fatal编程技术网

Javascript 创建两个属性相互重叠的新变量的输出?

Javascript 创建两个属性相互重叠的新变量的输出?,javascript,variables,properties,Javascript,Variables,Properties,我一直在尝试制作一个非常简单和基本的游戏来提高我的JavaScript技能。但是,我一直在尝试使用“比率”来显示对象的运行状况时遇到问题。下面是一个类似的代码,因为原始代码太长: function Person(health) { this.initialHealth = health; this.lostHealth = health; } var bob = new Person(100); var enemy = new Person(100); var bobAtta

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

您可能期望“lazy”求值,但您立即得到表达式的值。也就是说,表达式
var-enemyHealth=foreign.lostHealth+/'+foreign.initialHealth
在更改
foreign.lostHealth
之前,即在调用函数
bobAttack()
之前,会进行完全计算。如果您希望延迟评估,则可以使用:

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

bobAttack();

console.log(enemyHealth());

哦,我只是想澄清一下,
return
语句在调用函数时会计算'x',但是如果没有return语句,它就已经被计算了?我不太明白这个问题。。。调用函数时,将计算返回值。。return语句必须存在,如果希望函数返回结果,则不能忽略它。