Je débute en Javascript et j'ai commencé à regarder la POO. J'ai créé la classe suivante :
class Car
{
constructor(x,y,id)
{
this.x = x; //abscisse de l'image de voiture
this.y = y; //ordonnée de l'image de voiture
this.id = id; // id de l'image de voiture
this.full_id = "#"+this.id; //id de la voiture utilisable directement avec Jquery
$("body").append('<img src="http://nostarch.com/images/car.png" id="'+this.id+'"></img>'); //crée l'image de voiture
$(this.full_id).offset({left : this.x, top : this.y}); //place l'image de voitures aux bonnes coordonées
}
goForward() //fonction sensée décaler l'image de voiture de 5px vers la droite
{
console.log(this.x,this.y); //affiche les coordonnées de la voiture
this.x+=5; //ajoute 5 à l'x de la voiture
$(this.full_id).offset({left : this.x, top : this.y});//remet à jour les coordonnées de l'image
}
}
J'essaye de faire traverser la page à mon image de voiture. Pour cela, j'ai écrit le code suivant :
const car1 = new Car(10, 10,"car1"); setInterval(this.goForward.bind(this),100);
Pour une raison que j'ignore,quand j'appelle la fonction goForward() toute seule, ça marche très bien,mais quand j'utilise setInterval(), les attributs de l'objet prennent tous la valeur "undefined" et ça plante.