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.