Как создать класс Mootools имени переменной
-
02-10-2019 - |
Вопрос
Рассмотрим этот код:
var Someclass = new Class();
var Anotherclass = new Class();
var classes = ['Someclass', 'Anotherclass'];
И я хочу создать класс Mootools с динамическим именем. Конечно, я могу сделать это путем Eval:
eval('var obj = new ' + classes[0] + '(params);');
Но я не думаю, что это хороший раствор. Как сделать это в «правильном» пути? Может быть, что-то, как:
var obj = ObjectFactory(classes[0], params);
Решение
Использовать Обозначение кронштейна обратиться к классу как строку.
var object = new window['SomeClass']();
Передайте его параметры как обычные.
var object = new window['SomeClass'](1, 2, "three");
Вместо того, чтобы создавать все классы во всем мире, используйте объект в пространство имен.
var My = {
SomeClass: new Class(..),
OtherClass: new Class(..)
};
var object = new My['SomeClass']();
Не связан с StackOverflow