Переменное имя класса в JavaScript - PullRequest
2 голосов
/ 28 января 2010

Есть ли способ сделать имя переменной переменной в JavaScript. В php допускается следующее:

$classname = "klasse";
$class = new $classname();

Tom

Ответы [ 3 ]

5 голосов
/ 28 января 2010

Используйте квадратную скобку :

some_object["string_containing_method_name"]();

Если вы хотите поиграть с глобалами, просто помните, что все они являются свойствами объекта window.

… Но не играйте с глобалами .

Ваш конкретный пример:

var $classname = "klasse";
var $class = new window[$classname]();

(Очевидно, что обычные соглашения для использования только $ в машинно-сгенерированном коде также должны применяться)

0 голосов
/ 27 февраля 2013

Если вы хотите назвать что-то вроде

new acme.tools.Hammer();

Тогда сделай

var $toolName = "Hammer";
var myObject = new window['acme']['tools'][$toolName]();
0 голосов
/ 28 января 2010

Имейте в виду, что " eval - зло ", но если вы знаете об этом, тогда:

var classname= "klasse";
eval( "var obj = new " + classname + "();");
...