Wie kann ich in JavaScript auf alle In-Scope-Variablen zugreifen?
Obwohl allgemein anerkannt ist, dass es derzeit keine direkte Methode zum Abrufen aller Variablen gibt In JavaScript gibt es einen eingeschränkten Ansatz für den Zugriff auf lokale Variablen innerhalb einer Funktion.
Um dies zu erreichen, konvertieren Sie die Funktion mit f'' in einen String, der den Quellcode der Funktion ergibt. Analysieren Sie mit Hilfe eines Parsers wie Esprima den Code der Funktion und identifizieren Sie lokale Variablendeklarationen.
Suchen Sie im Ergebnis insbesondere nach Objekten, deren Typfeld auf „VariableDeclaration“ gesetzt ist. Zum Beispiel in der Funktion f:
var f = function() { var x = 0; };
Das Parsen des Funktionscodes mit Esprima gibt Folgendes zurück:
{ "type": "Program", "body": [ { "type": "VariableDeclaration", "declarations": [ { "type": "VariableDeclarator", "id": { "type": "Identifier", "name": "x" }, "init": { "type": "Literal", "value": 0, "raw": "0" } } ], "kind": "var" } ] }
Diese Methode bietet nur Zugriff auf Variablen, die in der Funktion selbst definiert sind. Zum Beispiel in der folgenden Funktion:
var g = function() { var y = 0; var f = function() { var x = 0; }; };
Die Anwendung desselben Ansatzes ermöglicht nur den Zugriff auf die x-Variable, nicht auf y. Um auf verschachtelte Variablen zuzugreifen, kann eine Schleife mit Aufrufer verwendet werden, aber die Variablennamen müssen vorher bekannt sein.
Das obige ist der detaillierte Inhalt vonWie kann ich alle lokal gültigen Variablen in einer JavaScript-Funktion abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!