So finden Sie die JavaScript-Variable anhand ihres Namens
Gibt es eine Möglichkeit zu finden, die JavaScript-Variablen auf der Seite (als Objekt) durch seinen Namen? Variable name wird als string-Konstante.
Kommentar zu dem Problem
Siehe auch spätere Frage mit weiteren Antworten: stackoverflow.com/questions/5117127/... und stackoverflow.com/questions/1664282/...
InformationsquelleAutor der Frage user59713 | 2009-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Catalin DICU
Alle JS-Objekte (Variablen) sind innerhalb Ihrer Reichweite als benannte Eigenschaften Ihres übergeordneten Objekts. Wo keine expliziten parent, es ist implizit die
window
Objekt.d.h.:
und für ein Komplexes Objekt:
und diese können verkettet werden:
InformationsquelleAutor der Antwort annakata
Wenn Sie wollen, eine variable, die deklariert wird, in den globalen Kontext, mit dem es verbunden ist das window-Objekt. ex: window["Variablenname"]. Alle Variablen sind in einer hash-Tabelle Wert innerhalb Ihrer Reichweite.
Wenn Sie punktierten Schreibweise, dann werden Sie wollen, zu Folgen, kennebec ' s Vorschlag, navigieren Sie durch die Objekt-Hierarchie. eval() kann so gut funktionieren, aber ist ein teurer Betrieb als ist wohl nötig.
InformationsquelleAutor der Antwort Tracker1
Wenn Ihr string-Referenzen ein 'deep' - Eigenschaft eines globalen, wie 'Yankee.console.format " Sie können Schritt für Schritt durch die Referenzen:
InformationsquelleAutor der Antwort kennebec
https://stackoverflow.com/a/17432007/1250044
InformationsquelleAutor der Antwort yckart
Wenn es eine Globale variable ist, können Sie es nachschlagen von Namen, die auf das Globale Objekt, da Globale Variablen sind Eigenschaften des globalen Objekts. Auf Browser, es gibt eine Globale variable und bezieht sich auf das Globale Objekt genannt
window
so:Aber Globale Variablen sind eine Schlechte Sache(tm).
Dies zu tun, ohne globals, verwenden Sie Ihre eigenen Objekt:
Beide der oben genannten Arbeit, weil in JavaScript, können Sie eine Objekt-Eigenschaft entweder mit der Punkt-notation und ein literal (
obj.foo
), oder mit Klammern-notation und string (obj["foo"]
), und in letzterem Fall, kann die Zeichenfolge sein, die das Ergebnis eines Ausdrucks, einschließlich eine variable lookup.InformationsquelleAutor der Antwort T.J. Crowder
Könnte man mit eval()
InformationsquelleAutor der Antwort James L