在我递归函数之前结束一个函数

问题描述:

function startGame(diff){ 
if (diff === 'easy'){ 
    loadEasy(); 
} 
} 

function loadEasy(){ 
difficultyPage.style.display = 'none'; 
game.style.display = 'block'; 
medHardTemplate.style.display = 'none'; 
easyTemplate.style.display = 'block'; 

newGame.addEventListener('click', function(){ 
    changeDifficulty('easy'); 
}); 

colors = randomColorsArray(3); 

correctColor = colorToChoose(colors); 
colorRGB.innerHTML = correctColor; 

for (var i = 0; i < easySquares.length; i++) { 
    //add colors to squares 
    easySquares[i].style.backgroundColor = colors[i]; 

easySquares[i].addEventListener('click', function(){ 
    var clickedColor = this.style.backgroundColor; 

    if(clickedColor === correctColor) { 
    changeColorsOnWinEasy(correctColor); 
    message.innerHTML = "Correct!"  
    again.textContent = "Play Again?" 
    again.addEventListener('click', function(){ 
     again.textContent = "NEW COLORS"; 
     header.style.backgroundColor = "#232323"; 
     colorRGB.style.backgroundColor = "#232323"; 
     message.innerHTML = ""; 
     changeDifficulty('easy'); 
    }); 
} 
else { 
    this.style.backgroundColor = "#232323"; 
    message.innerHTML = "Wrong!" 
} 
}); 
} 
} 

我不知道何时返回该函数,以便我没有很多同时运行的函数,如果我将newGame按钮垃圾邮件导致我的应用程序滞后。我加了一个回报;在loadEasy函数的结尾处,但这似乎没有做任何事情。在我递归函数之前结束一个函数

+0

什么叫第一? loadEasy或startGame? – ant45de

+1

这可能是我见过的执行如此简单任务的效率最低的代码。 –

+0

startGame首先被调用 – Trippze

你可以设置一个标志,指示当前的游戏类型,那么你不需要重新绑定一个按钮处理程序每​​次,你只需要定义按钮启动当前游戏

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(); 

要开始不同的一个,传递一个参数:

startGame("medium"); 
+0

哇,工作,谢谢你真是太棒了!为什么JS读空参数为false?这也是聪明的OR逻辑,是什么帮助你以这种方式思考?这是一堂课还是仅仅是经验? – Trippze

+0

@trippze一个空参数是未定义的,undefined是虚假的。该技巧称为*短路*,并通过在SO上写回答来学习它;;) –