Olá, Jorge! Tudo bem?
Desculpe a demora em retornar.
Temos uma interface que se chama MouseEvent. Essa interface inclui eventos como onmouseup e onmousedown.
O caso o onmouseup é um evento disparado quando o usuário libera o botão do mouse. A sintaxe dele é da seguinte forma:
target.onmouseup = functionRef;
Ou seja, a função functionRef irá receber o evento onmouseup como o seu único argumento. Utilizando o caso do professor:
function desabilitaDesenhar() {
desenha = false;
}
tela.onmouseup = desabilitaDesenhar;
Nesse caso, quando a tecla do mouse for solta, esse evento será um argumento da função desabilitaDesenhar() e portanto o desenha será false não ativando o desenho.
O onmousedown segue essa mesma lógica, entretanto sendo o oposto (quando o botão for pressionado).
Deixo aqui alguns sites que você pode encontrar alguns exemplos aplicados em outras situações:
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onmouseup
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onmousedown
Caso eu ainda não tenha deixado claro, estou à disposição. Bons estudos :)
Abraços!