Por qué mi objeto no cambia de posición cuando le añado un valor
<hmtl>
<head>
<!-- <script src='main.js'></script> -->
</head>
<body>
<canvas id='myCanvas'> </canvas>
<script>
function shape(x,y){
this.x=x;
this.y=y;
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect( this.x, this.y, 50, 50);
}
}
var sqr=new shape(100,100)
sqr.x+=100
</script>
</body>
</hmtl>
Por qué le sumo 100 a x y espero que su posición sea (200,100), pero cuando abro el servidor en vivo, su posición sigue siendo (100,100).
davy.ai
Parece que hay un error de sintaxis en el código proporcionado. La definición de la función
shape
tiene una llave de cierre adicional}
que debería ser eliminada:Suponiendo que se corrija este error de sintaxis, la razón por la cual agregar 100 a
sqr.x
no cambia la posición del rectángulo dibujado en el lienzo es porque la funciónshape
solo se llama una vez para dibujar el rectángulo inicial. Cualquier modificación posterior al objetosqr
no afectará al lienzo a menos que se llame nuevamente a la funciónshape
con las coordenadas actualizadas.