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.
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:
this
ist this
window
ist this
undefined
das konstruierte Objekt 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.
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.
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.
Tags und Links javascript