Wie kann ich ein Objekt in einer Warnmeldung untersuchen? Wenn Sie ein Objekt normalerweise alarmieren, wird nur der Knotenname ausgegeben:
alert(document);
Ich möchte jedoch die Eigenschaften und Methoden des Objekts im Warnfeld abrufen. Wie kann ich diese Funktionalität nach Möglichkeit erreichen? Oder gibt es noch andere Vorschläge?
Insbesondere suche ich eine Lösung für eine Produktionsumgebung, in der console.log und Firebug nicht verfügbar sind.
javascript
object
inspect
Valentina
quelle
quelle
console.log
auf Firefox oder ChromeJSON.stringify
ist hilfreich.Antworten:
Die
for
-in
Schleifen für jede Eigenschaft in einem Objekt oder Array. Sie können diese Eigenschaft verwenden, um zum Wert zu gelangen und ihn zu ändern.Hinweis: Private Objekte können nur eingesehen werden, wenn Sie einen "Spion" verwenden. Grundsätzlich überschreiben Sie das Objekt und schreiben einen Code, der eine For-In-Schleife im Kontext des Objekts ausführt.
Denn in sieht aus wie:
Einige Beispielcodes:
Bearbeiten: Vor einiger Zeit habe ich meinen eigenen Inspektor geschrieben, wenn Sie interessiert sind, teile ich gerne.
Edit 2: Nun, ich habe sowieso einen geschrieben.
quelle
Wie wäre es
alert(JSON.stringify(object))
mit einem modernen Browser?Im Falle von
TypeError: Converting circular structure to JSON
sind hier weitere Optionen: Wie serialisiere ich den DOM-Knoten in JSON, auch wenn Zirkelverweise vorhanden sind?Die Dokumentation:
JSON.stringify()
enthält Informationen zum Formatieren oder Verschönern der Ausgabe.quelle
alert(JSON.stringify(object, null, 4)
, wo4
ist die Anzahl der Leerzeichen, die zum Einrücken verwendet werden.stringify
zeigt keine Methoden an :JSON.stringify({f: ()=>{}}) => "{}"
. Wenn das Objekt einetoJSON
Methode implementiert , erhalten Sie außerdem, was diese Methode zurückgibt. Dies ist nutzlos, wenn Sie das Objekt untersuchen möchten :JSON.stringify({toJSON: () => 'nothin'}) => '"nothin"'
.Verwenden Sie
console.dir(object)
und das Firebug-Pluginquelle
console.dir
Funktion nicht bewusst . Ich konnte nicht herausfinden, warum ich das vollständige Objekt in Firebug nicht mehr anzeigen konnte. Das hat es jetzt für mich sortiert. Vielen Dank!console.log
neben der Anzeige noch weitere Vorteile gibtEs gibt nur wenige Methoden:
In einem Konsolenkontext kann manchmal der .constructor oder .prototype nützlich sein:
quelle
Verwenden Sie Ihre Konsole:
Oder wenn Sie HTML-Dom-Elemente untersuchen, verwenden Sie console.dir (Objekt). Beispiel:
Oder wenn Sie ein Array von js-Objekten haben, können Sie Folgendes verwenden:
Wenn Sie viel console.log (Objekte) ausgeben, können Sie auch schreiben
Auf diese Weise können Sie die in die Konsole geschriebenen Objekte kennzeichnen.
quelle
console
weil ich styling stackoverflow.com/q/7505623/1480391 verwende und es nicht kompatibel istquelle
Dies ist eine offensichtliche Abzocke von Christians ausgezeichneter Antwort. Ich habe es nur ein bisschen lesbarer gemacht:
quelle
Hier ist mein Objektinspektor, der besser lesbar ist. Da das Aufschreiben des Codes zu lange dauert, können Sie ihn unter herunterladen http://etto-aa-js.googlecode.com/svn/trunk/inspector.js
Verwenden Sie wie folgt:
quelle