Comment créer la classe MooTools d'un nom de variable
-
02-10-2019 - |
Question
Considérez ce code:
var Someclass = new Class();
var Anotherclass = new Class();
var classes = ['Someclass', 'Anotherclass'];
et je veux créer la classe Mootools avec un nom de dynamique. Bien sûr, je peux le faire par eval:
eval('var obj = new ' + classes[0] + '(params);');
mais je ne pense pas que ce soit une bonne solution. Comment faire d'une manière « correcte »? Peut-être somethink comme:
var obj = ObjectFactory(classes[0], params);
La solution
Utilisez le notation support pour faire référence à la classe comme une chaîne.
var object = new window['SomeClass']();
Faites passer des paramètres comme réguliers.
var object = new window['SomeClass'](1, 2, "three");
Au lieu de créer toutes les classes dans le monde, utiliser un objet pour les espaces de nommage.
var My = {
SomeClass: new Class(..),
OtherClass: new Class(..)
};
var object = new My['SomeClass']();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow