Instancier une classe en fonction de son nom
Bonjour à tous,
J'ai beau chercher je ne trouve pas de solution a un problème assez simple.
J'ai parcouru plusieurs forum, mais je ne dois pas faire la bonne recherche.
J'ai plusieurs classes qui héritent toutes de la même classe.
Je voudrais instancier un objet à partir du nom d'une de ces classes.
En gros il y a une vingtaine de classes:
class titi{}
class toto[}
class tata{}
...
et je voudrais éviter ça pour ne pas avoir à répéter à chaque fois tous les cas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| //--------------------------------------
const nomDeLaclasse = "toto";
switch (nomDeLaclasse ){
case "titi" : obj = new titi(); break;
case "toto" : obj = new toto(); break;
case "tata" : obj = new tata(); break;
...
}
//------------------------------------------
//mais plutôt faire un truc du genre
const nomDeLaclasse = "toto";
const obj = new nomDeLaclasse (); // mais ça, ça ne fonctionne pas |
y a t-il une solution, c'est peut être juste un problème de syntaxe
en php pas de soucis, mais en javascript je coince.
Les fonction de ces classes peuvent toutes être "static" si besoin ce qui pet peut être éviter le new.
Merci, JJDai
Instance de classe héritée
La deuxième solution semble convenir parfaitement à mon besoin d'autant que toutes seront instanciées.
Mon objectif est de faire un module de quiz pour le CM Xoops, avec une approche différente des autres quiz que ce j'ai pu trouvé, comme "Hot potatoes".
Chaque question est une classe héritée d'une classe parent.
Javascript n'est pas mon fort, mais ça fonctionne pas mal.
je vous mets un lien sur une version beta loin d'être finie, mais en bonne voie.
=== creaquiz pour Xoops
Pour l'instant j'ai opté pour des classes avec des fonctions statics, et un switch.
Par contre ça va m'obliger à changer de stratégie.
Merci pour les réponses, JJDai