Причина, по которой эти "ответы" не работают, заключается в том, что MyClass
не является свойством глобального объекта (в вашем случае это окно)
Это верно для переменных, объявленных в глобальной области видимости с помощью let
и const
, а также
Однако, поскольку вы, похоже, готовы перейти к определению старой школы, т.е. готовы переписать определения классов, вы всегда можете использовать это вместо этого - с бонусом, который естьтребуется минимальное переписывание
Примечание: используйте var
не let
или const
var MyClass = class MyClass {
someFunc(){alert("Hello");}
}
var AnotherClass = class AnotherClass {
someFunc(){alert("Hello again");}
}
var YetAnotherClass = class YetAnotherClass {
someFunc(){alert("Hello once more");}
}
Тогда вы можете просто
let instance = new window[myClassName]();
Кроме того, в зависимости от того, где/ Как классы определены (в импорте?), на самом деле может потребоваться сделать что-то вроде
window.MyClass = class MyClass {
someFunc(){alert("Hello");}
}
вместо