Для глобальных «классов» используйте:
var classname = "Date";
var obj = new window[classname]();
window
- глобальное пространство имен.Переменные и методы, определенные непосредственно в <script>
без оболочки, автоматически сохраняются в глобальном пространстве имен.
Для методов других «пространств имен» используйте:
var classname = "round";
var obj = new Math[funcname]();
// Illustrative purposes only, Math doesn't need `new`
Для частных методов, которыене привязаны к пространству имен, нет решения, кроме eval или Function:
var classname = "nonglobal";
var obj = new (Function(classname))();
Вам следует избегать eval
, когда это возможно, особенно если вы работаете с неизвестными строками.