Quero entender por que as intrunções c.fill, c.arc, (...), funcionam mesmo sem a declaração? Por que não houve necessidade do trecho que está comentado dentro da função?
<meta charset="utf-8">
<canvas id="quadro" width="600" height="400"></canvas>
<script>
function clicaNaTela(evento) {
/*var quadro = document.getElementById("quadro");
var c = quadro.getContext("2d");*/
var x = evento.pageX - quadro.offsetLeft;
var y = evento.pageY - quadro.offsetTop;
c.fillStyle = "red";
c.beginPath();
c.arc(x,y,25,0,2*3.14);
c.fill();
console.log("posição do clique: " + x + ", " + y);
}
var quadro = document.getElementById("quadro");
var c = quadro.getContext("2d");
c.fillStyle = "gray";
c.fillRect(0,0,600,400);
quadro.onclick = clicaNaTela;
</script>