11559 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
Je ne comprends pas pourquoi JavaScript cette erreur.
La structure du code est

class BubbleBox {
   ......
}
function buildBubble(data) {
    ....
   const bubbleBox = new BubbleBox(data);
}
// cette fonction est appelée par un évènement de complétion de fetch


Que faut-il faire pour que la class soit effectivement déclarée avant la création de l'objet ?
Les explications de MDN sont obscures. Comment sortir cette situation ?
Merci de votre aide.
Modifié par PapyJP (21 Sep 2025 - 18:19)
Bonsoir,

Je ne sais pas si le code ci dessous peut aider :


class BubbleBox {
   constructor(data){
     this.data = data;
     return data;
   }
}

function buildBubble(data) {
    const bubbleBox = new BubbleBox(data);
    console.log(bubbleBox);
}

buildBubble(5); // Object { data: 5 }
J'ai changé la façon de faire pour éviter ce problème, mais j'ai toujours du mal à comprendre comment ça fonctionne.
Modérateur
Salut,

Je passe en coup de vent. J'ai vu une belle erreur :


class BubbleBox {
   constructor(data){
     this.data = data;
     return data;
   }
}


Le rôle principal d'un constructeur est d'initialiser l'état d'un objet lors de sa création. Il prépare l'instance en lui donnant ses propriétés initiales (qui seront privées ou protégées). Par exemple, dans la classe BubbleBox, le constructeur est censé stocker les données qu'on lui passe. Un constructeur n'est pas une méthode classique. En POO, il retourne implicitement la nouvelle instance de l'objet (this).
Modifié par Niuxe (23 Sep 2025 - 18:58)