Господа подскажите вариант:
имеем
let nameClass = 'someClass';
есть описание класса
class someClass {
............................
}
нужно по содержимому строки nameClass создать объект
типа
eval('new '+nameClass )......
eval как то не очень хочется. Есть ли какие либо другие варианты?
так не могу. описание класса загружается динамически. все подобные классы являются производными от некоего базового класса. и подгружаются по мере действий абонента на странице. т.е. создать полный список объектов
const classes = {} - возможности нет.
хотя наверное что то типа этого все таки придется сделать. можно чтобы при загрузки описания объекта заполнялся подобный массив.... в общем то это решение лучше чем eval. что то типа виртуального конструктора получили )))
Спасибо
фишка еще в том, что заполнять данный массив classes.SomeClass = SomeClass нужно ДО загрузки скрипта. а после уже делать new. ДО загрузки еще нет описания. по идее выпадет ошибка..... капец. надо думать
может кому пригодится - вот получилось такое решение
1 загрузка скрипта
//-первый параметр - маршрут скрипта
// второй параметр - callback при успешной загрузке которому передается строка с именем загружаемого класса.
this.storage.loadScript( supportedHardware[this.switchModel].path,
this.loadScriptHandler.bind(this,supportedHardware[this.switchModel].class) );
2. в самом скрипте - помимо описания класса в конце скрипта
devices['Catalyst-1000'] = Catalyst-1000; - это и есть массив по которому будет создаваться (new) новый объект.
3 и callback при успешной загрузки скрипта
loadScriptHandler( classDescription ){
this.switchObject = new devices[classDescription];
...................................