Qual é a melhor maneira de lidar com vários eventos importantes em Javascript?

Pressionar a barra de espaço no jogo fará uma filmagem do personagem, pressionar a barra de espaço quando uma caixa de confirmação for exibida fará com que essa caixa desapareça e pressionar a barra de espaço em um formato de pontuação alta adicionará um espaço em uma caixa de entrada. Neste exemplo, existem vários eventos para a mesma chave, mas apenas um é acionado por vez.

Existe um método geral (ou específico para Javascript) ou uma maneira de programar para adicionar eventos a uma determinada chave, para que eles sejam executados apenas em determinadas circunstâncias?

Claro que isso pode ser feito assim:

var inGame = true|false;
var inConfirmationBox = true|false;

function spaceBarHandler(){
    if(inGame){ /*shoot*/}
    else if(inConfirmationBox){ /*remove box*/}
}

document.onkeydown = function(){ /* call space bar handler if space bar was pressed */ };

Mas essa é uma maneira muito confusa de programação, pois ações específicas são misturadas em uma função de manipulador de barra de espaço, o que dificulta a manutenção.

Qual é a melhor maneira de lidar com vários eventos para uma chave, de modo que esses eventos sejam acionados apenas em determinadas circunstâncias?

questionAnswers(4)

yourAnswerToTheQuestion