1
resposta

Não consigo entender a necessidade do uso da função anônima

Eu entendo que sem ela o navegador bloqueia a execução do código pois interpreta que o som está sendo tocado sem a interação do usuário. Mas se o código em questão

listaDeTeclas[contador].onclick

possui a propriedade .onclick, teoricamente, a função não deveria ser executada apenas ao click ser realizado?

1 resposta

Olá Igor! Tudo bem?

Entendo sua dúvida em relação ao uso da função anônima. Quando usamos a propriedade .onclick em um elemento HTML, como no seu exemplo, estamos atribuindo uma função a ser executada quando o elemento for clicado.

No entanto, se atribuirmos diretamente uma função nomeada, como por exemplo:

function tocarSom() {
  // código para tocar o som
}

listaDeTeclas[contador].onclick = tocarSom;

O navegador irá executar a função tocarSom imediatamente no momento em que o código acima for interpretado, e não apenas quando o elemento for clicado. Isso pode causar problemas de performance e comportamento inesperado em algumas situações.

Por isso, é comum utilizarmos uma função anônima para evitar esse comportamento indesejado:

listaDeTeclas[contador].onclick = function() {
  // código para tocar o som
};

Dessa forma, a função é criada e atribuída ao evento onclick apenas quando o elemento for clicado, garantindo que o código será executado apenas quando necessário.

Espero ter ajudado a esclarecer sua dúvida!

Um abraço e bons estudos.