Как создать класс MooTools для имени переменной - PullRequest
0 голосов
/ 10 сентября 2010

Рассмотрим этот код:

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);

1 Ответ

3 голосов
/ 10 сентября 2010

Используйте обозначение в скобках для ссылки на класс в виде строки.

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']();
...