Wie MooTools Klasse eines Variablennamen erstellen
-
02-10-2019 - |
Frage
Betrachten Sie diesen Code ein:
var Someclass = new Class();
var Anotherclass = new Class();
var classes = ['Someclass', 'Anotherclass'];
und ich möchte Mootools-Klasse mit einem dynamischen Namen erstellen. Natürlich ich es von eval tun können:
eval('var obj = new ' + classes[0] + '(params);');
, aber ich glaube nicht, es ist eine gute Lösung. Wie dies in einem „richtigen“ Weg zu tun? Vielleicht some wie:
var obj = ObjectFactory(classes[0], params);
Lösung
Mit der Klammer-Notation die Klasse verweisen als String zurück.
var object = new window['SomeClass']();
Paßt Sie Parameter als regulär.
var object = new window['SomeClass'](1, 2, "three");
Statt alle Klassen global zu schaffen, ein Objekt verwenden, um sie zu Namespace.
var My = {
SomeClass: new Class(..),
OtherClass: new Class(..)
};
var object = new My['SomeClass']();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow