Problème avec SetInterval() en POO

debutant - 22 oct. 2022 à 10:15

Bonjour,

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.

Merci d'avances,

Rejoignez-nous