Por que a função desenhaCirculo pôde fazer alterações na variável que estava fora dela ? Não seria necessário receber a variável raio como parâmetro para que ela pudesse fazer alterações e um return para que ela retornasse o valor da variável após a modificação ? Sendo recebido por uma nova variável, por exemplo, raioAtual?
Estou tendo aulas de c++, e confundo um pouco a sintaxe de js e c++, mas fiquei realmente confuso quanto a possibilidade de uma função alterar uma variável que está fora dela.
Offtopic: é valido estudar c visando as aulas de c++ que estou tendo ? porque não vi cursos de c++ aqui na alura.