此条件如何工作:
function play(){
if (typeof gameInterval != "undefined")
clearInterval(gameInterval);
gameInterval = setInterval(gameLoop, 100);
allowPressKeys = true;
}
变量gameInterval仅在此函数内部定义,没有全局变量。
因此,当play()称为gameInterval时,它是未定义的。由于在未定义gameInterval时此条件会执行某些操作,因此我不明白它为什么起作用。有人可以解释吗?我试图理解这一点,以便稍后在代码中进行操作。
最佳答案
由于您缺少if块周围的花括号,因此只有if之后的第一条语句才有条件执行。您的缩进混淆了此问题。您实际上是在这样做:
function play() {
if (typeof gameInterval != "undefined")
clearInterval(gameInterval);
gameInterval = setInterval(gameLoop, 100);
allowPressKeys = true;
}
该声明:
gameInterval = setInterval(gameLoop, 100);
总是被执行;
如您可能的意思是这样:
function play() {
if (typeof gameInterval != "undefined") {
clearInterval(gameInterval);
gameInterval = setInterval(gameLoop, 100);
allowPressKeys = true;
}
}
关于javascript - 为什么有条件地起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45598967/