[英]JavaScript - Function Not Modifying Global Variable
我在用JavaScript编写代码的文本冒险游戏中修改变量时遇到麻烦。 我想使用一个函数中的一个函数来更改全局变量的值(不,不是闭包)。
/*This is just example code.*/
var health = 100;
var exp = 0;
function refreshStats() {
health -= 10;
exp += 1;
}
function foo(flag) {
if (flag == DONOTHING) {
refreshStats();
}
if (health <= 0) {
say("You died, bwahaha.");
}
if ((exp/10) == Math.floor(exp/10)) {
health += 10;
say("You leveled up!");
}
}
游戏的工作方式是每个功能(定义为游戏中的动作或区域)将由JavaScript放置的按钮和表单分别调用,用户可以单击或写入这些按钮和表单。 我需要refreshStats()更新运行状况和exp变量,以便foo()可以正确使用它们; 直到foo()运行之后,该函数似乎才更新变量。 我确实想知道这是否是浏览器兼容性问题,确实会打扰我,但我希望不是那样。
有什么建议么?
将值存储到窗口对象中,因此它将在该窗口的任何范围内可用:
//take care to not overwrite native properties of the window
window.health = 100;
window.exp = 0;
function refreshStats() {
health -= 10;
exp += 1;
}
似乎对我有用 。 也许这是一个范围问题-您可以发布实际的相关代码,而不是示例代码吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.