Come creare classe MooTools di un nome di variabile
-
02-10-2019 - |
Domanda
Si consideri questo codice:
var Someclass = new Class();
var Anotherclass = new Class();
var classes = ['Someclass', 'Anotherclass'];
e voglio creare classe mootools con un nome dinamico. Naturalmente posso farlo da eval:
eval('var obj = new ' + classes[0] + '(params);');
ma io non credo che sia una buona soluzione. Come fare questo in modo "adeguato"? Forse somethink come:
var obj = ObjectFactory(classes[0], params);
Soluzione
Utilizza la staffa notazione per riferirsi alla classe come una stringa.
var object = new window['SomeClass']();
passarlo parametri come normale.
var object = new window['SomeClass'](1, 2, "three");
Invece di creare tutte le classi globalmente, utilizzare un oggetto in spazi dei nomi loro.
var My = {
SomeClass: new Class(..),
OtherClass: new Class(..)
};
var object = new My['SomeClass']();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow