Eu não entendi como uma parte do código foi lida, executada:
var mostraBrasil = true;
function trocaBandeira() {
if(mostraBrasil){
desenhaBandeiraBrasil();
}else{
desenhaBandeiraAlemanha();
}
mostraBrasil = !mostraBrasil // mostraBrasil = false
}
Eu sempre pensei que o código era lido de cima para baixo, sem ficar voltando, mas olha o qe acontece:
Primeiro o mostraBrasil já recebe o valor de true.
Na função o desenhaBandeiraBrasil é feito, mas o desenhaBandeiraAlemanha não, já que o mostraBrasil é true. Até aí ok.
Depois o mostraBrasil é false, então o código volta lá para cima ( no else ) para executar o desenhaBandeiraAlemanha, daí desce de novo, acabando os comandos, assim, terminando de executar a function trocaBandeira().
Essa volta para executar comandos anteriores sempre pode acontecer? E é só dentro de uma função?