Bonjour,
Je me lance dans l'orienté objet et je ne sais pas trop comment faire pour 'recréer' des instances d'une classe à partir d'un fichier de sauvegarde JSON (sans avoir besoin de redéfinir toutes les propriétés, directement ou via des setters).
Je m'explique : j'ai une classe 'Entity' telle que visible en version abrégée ci-dessous. La méthode display() permet d'afficher une instance de la classe à l'écran.
Code :
class Entity { constructor(entity_id, entity_name, xPos, yPos, width, height) { this.entity_id = entity_id; this.entity_name = entity_name; this.position = { x: xPos, y: yPos }; // ... } set setTextContent(x) { this.text_content = x; } set setEntityName(title) { this.entity_name = title; } display() { let div = document.createElement('div'); // ... maincontainer.appendChild(div); } }
|
Une action de type click va donc créer une nouvelle instance :
Code :
let o1 = new Entity(1, `Test ${1}`, 20, 20, 200, 200);
|
Puis en cliquant pour sauvegarder, une fonction AJAX fait appel à un script PHP pour stocker les données dans un fichier.
Une autre fonction AJAX se charge de récupérer ces données.
Maintenant mon problème c'est comment recréer les instances à partir du JSON ?
Car si je fais quelque chose comme :
Code :
let s1 = JSON.stringify(o1); let o2 = new Entity(JSON.parse(s1));
|
Je perds les données qui ne sont pas définies par le constructeur.
Et si je fais :
Code :
let o3 = JSON.parse(s1);
|
o3 n'est pas considéré comme une instance de Entity...
Message édité par b_b_rodriguez le 05-10-2020 à 20:18:39