2010-01-28 6 views

Répondre

5

Utilisez square bracket notation:

some_object["string_containing_method_name"](); 

Si vous voulez jouer avec globals, puis rappelez-vous juste qu'ils sont toutes les propriétés de l'objet window.

... mais don't play with globals.

Votre exemple particulier:

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

(De toute évidence, les conventions habituelles pour seulement en utilisant $ dans la machine du code généré doit appliquer aussi)

0

Gardez à l'esprit que "eval is evil", mais si vous êtes au courant de ce fait, alors:

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

@ David (auteur d'un commentaire supprimé qui a déclaré que 'eval' ne doit pas être utilisé), c'est la raison pour laquelle j'ai ajouté l'avertissement. Cependant, la question semble plus théorique que d'être bientôt mise en pratique. – naivists

0

Si vous voulez appeler quelque chose comme

new acme.tools.Hammer(); 

Puis faire

var $toolName = "Hammer"; 
var myObject = new window['acme']['tools'][$toolName](); 
Questions connexes