Array-ähnliche Objekte und Arrays werden nicht wie Arrays protokolliert, wenn die Konsole geschlossen ist

8

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. *

    
Denys Séguret 27.02.2014, 14:33
quelle

3 Antworten

2

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] .

    
Ingmars 09.06.2014 13:15
quelle
0

Es ist eher ein Problem bei: Ссылка

Scheint, es ist bereits in Webkit behoben.

    
Cylon 04.03.2014 08:44
quelle
0
  

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.

    
Bergi 09.06.2014 14:13
quelle

Tags und Links