Siehe diese jsbin , wo ich, um eine andere Frage zu beantworten, ein Array-ähnliches Objekt erstelle:
%Vor%Wenn Sie bei geöffneter Konsole auf die Schaltfläche Mit JS klicken, erhalten Sie Folgendes:
Das sehr Kuriose ist, dass wenn Sie den Knopf drücken, während die Konsole geschlossen ist, Sie dies bekommen (Sie sehen es, nachdem Sie die Konsole natürlich wieder geöffnet haben):
Ist das ein bekannter Fehler? Eine Eigenschaft ? Eine Grauzone? Gibt es eine Problemumgehung?
* Hinweis: Manchmal, auf Chrome / Linux (nicht Chromium) bekomme ich etwas seltsameres: vorhandene Protokolle werden geändert, wenn die Konsole geschlossen und wieder geöffnet wird. Sie können von der Array-ähnlichen Form in die gefaltete Form wechseln. *
Ich nehme an, dass dieses Verhalten beabsichtigt ist, Speicher / Leistung zu sparen, da das Auflösen / Drucken von Laufzeitobjekten eine ziemlich teure Aufgabe ist.
Wenn Sie wirklich eine unverpackte Information benötigen, würde ich vorschlagen,
zu verwenden %Vor%Alternativ gibt es für Arrays ein neues
%Vor% TIPP: console.dir
is ist auch die Möglichkeit, den Inhalt des Objekts in Internet Explorer zu protokollieren, im Gegensatz zur standardmäßigen log()
-Ausgabe von [object Object]
.
Das Kuriose ist, dass wenn Sie ein Objekt loggen, während die Konsole geschlossen ist, Sie nicht die erweiterte (Array-ähnliche) Ansicht erhalten (nachdem Sie die Konsole natürlich wieder geöffnet haben).
Ist das ein bekannter Fehler? Eine Funktion?
Ein Feature, würde ich raten. Die Konsole ist für die Leistung optimiert, während sie nicht geöffnet ist, und berechnet daher nicht die erweiterte Ansicht des Objekts
Gibt es eine Problemumgehung?
Schauen Sie sich an. Wie kann ich das Standardverhalten von console.log ändern? (* Fehler Konsole in Safari, kein Add-on *) . Du hättest das typische Faulheits-Problem sowieso. Die Protokollierung von JSON-Strings sollte helfen.
Tags und Links javascript google-chrome