Javascript 在递归调用函数之前结束函数 功能启动名称(差异){ 如果(差异=='easy'){ loadEasy(); } } 函数loadEasy(){ difficultyPage.style.display='none'; game.style.display='block'; medHardTemplate.style.display='none'; easyTemplate.style.display='block'; newGame.addEventListener('click',function(){ 改变困难(“容易”); }); 颜色=随机颜色射线(3); correctColor=颜色选择(颜色); colorRGB.innerHTML=correctColor; 对于(var i=0;i

Javascript 在递归调用函数之前结束函数 功能启动名称(差异){ 如果(差异=='easy'){ loadEasy(); } } 函数loadEasy(){ difficultyPage.style.display='none'; game.style.display='block'; medHardTemplate.style.display='none'; easyTemplate.style.display='block'; newGame.addEventListener('click',function(){ 改变困难(“容易”); }); 颜色=随机颜色射线(3); correctColor=颜色选择(颜色); colorRGB.innerHTML=correctColor; 对于(var i=0;i,javascript,recursion,return,Javascript,Recursion,Return,我不知道何时返回该函数,因此如果我垃圾邮件发送newGame按钮导致我的应用程序延迟,我就不会同时运行多个函数。我加了一个报税表;在loadEasy函数的末尾,但这似乎没有起到任何作用。您可以设置一个指示当前游戏类型的标志,然后您不需要每次都重新绑定按钮处理程序,您只需要将按钮定义为开始当前游戏: 因此,要使用当前游戏类型开始游戏,请执行以下操作: let gametype = "easy": function startGame(diff){ gametype = diff || gam

我不知道何时返回该函数,因此如果我垃圾邮件发送newGame按钮导致我的应用程序延迟,我就不会同时运行多个函数。我加了一个报税表;在loadEasy函数的末尾,但这似乎没有起到任何作用。

您可以设置一个指示当前游戏类型的标志,然后您不需要每次都重新绑定按钮处理程序,您只需要将按钮定义为开始当前游戏:

因此,要使用当前游戏类型开始游戏,请执行以下操作:

let gametype = "easy":

function startGame(diff){
  gametype = diff || gametype;
  if (gametype === 'easy'){
    loadEasy();
  }
  else {
    throw Error('unknown gametype: ' + gametype);
  }
}

function loadEasy(){
  //... Whatever  
}

newGame.addEventListener('onclick', function(){
  startGame();
});
要启动另一个,请传递一个参数:

startGame();

什么叫第一?loadEasy还是StartName?这可能是我见过的执行如此简单任务的效率最低的代码。StartName被称为firstCoupd。您能简要介绍一下您的游戏吗?我不是舒尔,代码应该做什么……这种递归绑定eventlistener的组合对我来说毫无意义。你想实现什么?哇,成功了,非常感谢!为什么JS将空参数读取为false?这也是聪明或逻辑,是什么帮助你以这样的方式思考?这是一门课还是仅仅是一次体验?@trippze空参数是未定义的,未定义是虚假的。or技巧被称为短路,我是通过在……上写答案学会的。)
startGame();
startGame("medium");