javascript - 如何更改 if 语句中的全局变量,然后在另一个 if 语句中重用该更改?

标签 javascript variables global

我正在 Perlenspiel 引擎中运行 game.js 文件。我有一个名为

的全局变量
var hasKey;

在 PS.keyDown = 函数中我运行这个

var hasKey;
    if(dataAtScout == "key"){
        hasKey = true;
        PS.audioPlay("fx_jump8");
        PS.debug("Scout has picked up an odd key")
    }

    if(dataAtScout == "exit"){
        Scout.x = oldSX;
        Scout.y = oldSY;
        PS.debug("\nTheres a computer at the door.")

        if(hasKey == true){
            PS.debug("\nThe door creaks open as Scout runs into a cornfield.")

        }
        else{
            PS.debug("\nError... Error... Error... Error")
        }

    }   

我想检查当玩家在导出时 key 是否已被拿起。但是,我无法这样做。我尝试了很多很多事情,这是困扰我的最后一个障碍。我想全局更改 hasKey = true ,以便当 dataAtScout = "exit"时它会确认变量已更改为 true。那么,在我的 dataAtScout = "key"中,如何将 hasKey 变量全局更改为 true,以便稍后由另一个 if 语句确认?

我看到另一篇文章有​​类似的问题,结论是reset();需要被调用。我尝试过,但没有成功。

非常感谢任何和所有帮助!

最佳答案

您声明:“在 PS.keyDown = 函数中我正在运行此”,然后:var hasKey;,从中我了解到您显示的代码是正文或部分上述函数体的一部分,因此您的 hasKey 变量是该函数的本地变量。

删除var hasKey;(从函数内部)语句以使用全局变量。

PS。免责声明:您永远不应该使用全局变量。

关于javascript - 如何更改 if 语句中的全局变量,然后在另一个 if 语句中重用该更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28707907/

相关文章:

javascript - 使用 JQuery 淡出动画

java - Java 中的_全局_列表

javascript - 具有 HTML5 异步属性和协议(protocol)相关 URL 的 Google Analytics JavaScript 跟踪代码

javascript - Node.js 的 "os"模块没有 userInfo() 方法

php - 在 PHP 中使变量成为全局变量?

bash - 扩展变量 Bash 脚本

python - 如何在 Python 中设置全局随机种子

angular - Angular 编译器要求 TypeScript >=2.7.2 和 <2.8.0,但找到了 2.8.3

javascript - Powerbuilder/Javascript HTML Datawindow SetItem 日期时间失败

java - 有没有一种方法可以在 java 中使用循环创建可变数量的数组?