繁体   English   中英

JavaScript-函数未修改全局变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM