2009-09-17 6 views
9

Auf diese Weise könnte ich eine Funktion haben, die whatever_way_you_do_this = etwas sagt. Ist das möglich? Grundsätzlich könnte ich einer Funktion sagen, welche Variable ich setzen möchte, indem ich ihr eine Zeichenfolge gebe, die den Namen der Variablen enthält.Gibt es eine Möglichkeit, auf eine JavaScript-Variable mit einer Zeichenfolge zuzugreifen, die den Namen der Variablen enthält?

Dank

+0

Kein Duplikat von "Get globale Variable dynamisch durch Namenszeichenfolge in JavaScript", diese Frage sagt nichts über die globale Variable. Und es ist wichtig. –

Antwort

20

Gegeben:

var value = x['myproperty']; 
:

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

Sie den Wert von zugreifen können

Wenn y Sie suchen nach einer globalen Variablen, dann würden Sie ihren Container überprüfen (window);

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

Wenn es eine globale Variable myVar benannt ist, können Sie verwenden:

window["myVar"] 
+1

Um zu erarbeiten: Funktion setGlobal (varName, varValue) {Fenster [varName] = varValue; } –

6

können Sie

verwenden
eval(variableString); 

mit Vorsicht Gehen Sie wie viele tun eval()

+0

Mehr vielseitige Antwort. Die aktuell beste Antwort kann nur auf Eigenschaften zugreifen. Dies kann sowohl auf einfache Variablen als auch auf die Eigenschaften 'eval (" x.myproperty ");' zugreifen. Warum wird eval aus Neugier nicht empfohlen? –

+1

@BryantJackson Sicherheit ist ein großer Grund, Sie wollen wirklich nicht die Möglichkeit der willkürlichen Code-Ausführung auf einer Produktionsmaschine erstellen – nickford

2

Die eval-Funktion nicht empfehlen, eine Variable aus einem String zugreifen können den Variablennamen enthält.

Verwandte Themen