Erhalte Variablennamen mit JavaScript

8

Ich möchte eine Protokollfunktion erstellen, in der ich Variablennamen wie folgt einfügen kann:

%Vor%

Und das Ergebnis sollte in der console.log

wie folgt aussehen %Vor%

Erhalten Sie den Wert der Variablen ist keine Probleme, aber wie bekomme ich die Variablennamen? Die Funktion sollte generisch sein, so dass ich nicht immer davon ausgehen kann, dass es sich bei dem Bereich um ein Fenster handelt.

    
arpo 23.04.2012, 06:57
quelle

7 Antworten

6

Also ist das Argument ein Array von Variablen? Dann gibt es keine Möglichkeit, den ursprünglichen Variablennamen zu erhalten, sobald er auf diese Weise übergeben wurde. Auf der Empfängerseite sehen sie einfach so aus:

%Vor%

und nichts mehr

Sie könnten der Funktion die Namen der Variablen und den Bereich, in dem sie sich befinden, zur Verfügung stellen, wie:

%Vor%

Dies führt jedoch zu dem Problem, wenn Sie den Gültigkeitsbereich auch angeben können. Es gibt viele Probleme mit% code% in bestimmten Codebereichen:

  • für nicht strikte Funktionen, this ist this
  • für strikte Funktionen, window ist this
  • für Konstruktorfunktionen ist undefined das konstruierte Objekt
  • Innerhalb eines Objektliterals ist this das unmittelbar einschließende Objekt

Sie können sich also nicht darauf verlassen, dass this als Bereich übergeben wird. es sei denn, Sie können den Bereich bereitstellen, dies ist eine andere Sackgasse.

Wenn Sie sie als Objekt übergeben, können Sie das Objekt und seine "Schlüssel" durchlaufen und nicht die ursprünglichen Variablennamen. Dies ist jedoch mehr Schaden als Heilung in diesem Fall.

    
Joseph 23.04.2012, 07:14
quelle
2

Ich weiß, dass Sie einige Tastenanschläge speichern möchten. Ich auch. Normalerweise protokolliere ich jedoch den Variablennamen und die Werte, so wie andere hier bereits vorgeschlagen haben.

%Vor%

Wenn Sie das Format, das Sie bereits illustriert haben, wirklich bevorzugen, können Sie das folgendermaßen tun:

%Vor%

In beiden Fällen müssen Sie den Variablennamen in Ihre Protokollanforderung aufnehmen, wenn Sie ihn sehen möchten. Wie Gareth sagte, ist das Sehen der Variablennamen innerhalb der aufgerufenen Funktion keine Option.

    
matty 23.04.2012 07:28
quelle
1

So etwas würde tun, wonach Sie suchen:

%Vor%     
Ivan Karajas 23.04.2012 07:07
quelle
0

Weiß nicht, ob das in JS wirklich funktioniert ... aber Sie können ein Objekt verwenden, in dem Sie den Namen und den Wert speichern können:

%Vor%

Dann können Sie sich durch dieses Objekt bewegen und Sie erhalten den Namen und den Wert

    
Tobi 23.04.2012 07:02
quelle
0

Sie können nicht mit einem Array auf die Variablennamen zugreifen. Sie können Objekte verwenden oder die Variablennamen als String übergeben:

%Vor%     
muffel 23.04.2012 07:04
quelle
0

Ich hatte ein ähnliches Problem, aber aus verschiedenen Gründen.

Die beste Lösung, die ich finden konnte, war:

%Vor%

Also wenn:

%Vor%

Dann:

%Vor%

Wie ich schon sagte, es passte zu meinen Bedürfnissen, aber ich bin mir nicht sicher, wie das für Sie funktionieren wird. Ich fühle mich albern, dass ich es sogar brauchte, aber ich tat es.

    
Ronk 08.02.2016 07:48
quelle
-2

teste das.

%Vor%

Beglaubigung Manuel Retamozo Arrué

    
user3507808 07.04.2014 17:24
quelle

Tags und Links