2009-09-17 6 views
9

De cette façon, je pourrais avoir une fonction qui indique quelquechose_way_you_do_this = quelque chose. Est-ce possible? Fondamentalement, je pourrais dire à une fonction quelle variable je veux définir en lui donnant une chaîne qui contient le nom de la variable.Existe-t-il un moyen d'accéder à une variable javascript à l'aide d'une chaîne contenant le nom de la variable?

Merci

+0

Pas une copie de "Obtenir la variable globale dynamiquement par chaîne de nom en JavaScript", cette question ne dit rien sur la variable étant globale. Et c'est important. –

Répondre

20

Étant donné:

var x = { 
    myproperty: 'my value' 
}; 

Vous pouvez accéder à la valeur par:

var value = x['myproperty']; 

Si oui Si vous recherchez une variable globale, vous devez vérifier son conteneur (window);

var value = window['x']['myproperty']; 
3

Si elle est une variable globale nommée myVar, vous pouvez utiliser:

window["myVar"] 
+1

Pour élaborer: function setGlobal (varName, varValue) {window [varName] = varValue; } –

6

Vous pouvez utiliser

eval(variableString); 

Faire preuve de prudence que beaucoup ne recommande pas l'utilisation eval()

+0

Réponse plus polyvalente. La meilleure réponse actuelle peut uniquement accéder aux propriétés. Cela peut accéder à la fois aux variables simples et aux propriétés 'eval (" x.myproperty "); Par curiosité, pourquoi eval n'est-il pas recommandé? –

+1

@BryantJackson sécurité est une grande raison, vous ne voulez vraiment pas créer la possibilité d'exécution de code arbitraire sur une machine de production – nickford

2

La fonction eval peut accéder à une variable d'une chaîne contenant le nom de la variable.

eval('baseVariableName'+index) = 'something'; 
Questions connexes