Javascript: Может ли строка быть преобразована / преобразована в константу типа? - PullRequest
1 голос
/ 09 февраля 2012

Если у меня есть переменная, содержащая строку, есть ли способ, которым я могу трактовать содержимое этой строки как имя типа?

Например, есть ли в Javascript ????что:

var ts = "Array";
var magic_type = ????; //magic
var obj_instance = new magic_type;

действительно и obj_instance == []?

Ответы [ 2 ]

4 голосов
/ 09 февраля 2012

Вы можете создать его экземпляр, используя скобочную запись с глобальным объектом.

var arr = new window['Array'];

jsFiddle .

Если конструктор принимает аргументы, добавьте их в конец.

В качестве примечания приведен пример кода ...

obj_instance === []

... никогда не получит true, потому что синтаксис [] создаст новый Array с другим расположением в памяти.

1 голос
/ 09 февраля 2012
var instance = new window[someString]();

Никакой магии не требуется.

...