2010-08-19 5 views
1

J'ai une variable contenant une chaîne "Y.Plugin.abcd" et je voudrais accéder à un objet avec le même nom ... J'utilise YUI 3 et j'ai essayé le Y. méthode namespace sans chance.Utiliser une chaîne pour accéder à l'objet en Javascript

var nm = "Y.Plugin.abcd"; 

Y.log(Y.Plugin.abcd); //outputs the correct object 

Y.log(Y.namespace(nm)); //outputs an empty object 

Je suis à peu près à la recherche d'une méthode, YUI ou non, être en mesure de faire ce qui est une tâche assez simple en PHP.

Répondre

2

En JavaScript plaine, vous pouvez probablement split votre chaîne, puis utilisez le subscript notation, comme suit:

var nm = "Y.Plugin.abcd"; 
var nm_array = nm.split('.'); // split the nm string 
var obj = window;    // set our reference to the global object 

for (var i = 0; i < nm_array.length; i++) { 
    obj = obj[nm_array[i]];  // walk through all the namespaces 
} 

Y.log(obj);      // obj will hold a reference to Y.Plugin.abcd 
+0

Merci, ce que je fini par faire était Y.log (Y.Plugin [nm]); Cela a fini par me procurer la référence dont j'avais besoin. – user103219

Questions connexes