Diskrepanz bei der Anzeige von JavaScript-Objekten in Konsolenprotokollen
Bei der Anzeige von JavaScript-Objekten in Konsolenprotokollen haben Benutzer in Firefox, Chrome und anderen Ländern unterschiedliche Ergebnisse festgestellt Safari-Browser. Während Firebug von Firefox die an Objektattributen vorgenommenen Änderungen genau widerspiegelt, zeigen Chrome- und Safari-Konsolenprotokolle ein eigenartiges Verhalten.
In der Chrome-Konsole erstellen console.log-Aufrufe, die Objekte betreffen, einen Verweis auf das Objekt. Bis die Registerkarte „Objekt“ in der Konsole geöffnet wird, bleibt die Referenz aktiv und spiegelt alle am Objekt vorgenommenen Änderungen wider. Sobald jedoch die Objektregisterkarte geöffnet wird, wird das protokollierte Objekt „zwischengespeichert“ und zeigt den zuletzt aktualisierten Wert an, unabhängig von weiteren Änderungen am Originalobjekt.
Dieses Verhalten ist auf eine Designentscheidung des Chromium-Teams zurückzuführen , wird nicht als Fehler angesehen. Dies kann jedoch für Entwickler, die auf eine genaue Objektanzeige in Konsolenprotokollen angewiesen sind, unpraktisch sein.
Um dieses Problem zu umgehen, stehen mehrere Optionen zur Verfügung. Entwickler können einen Nicht-Objektwert des Objekts protokollieren, z. B. eine mit JSON.stringify(foo) erhaltene serialisierte Darstellung. Dadurch erhalten Sie die aktuellste Darstellung des Objektstatus.
Das obige ist der detaillierte Inhalt von## Warum zeigen Chrome- und Safari-Konsolenprotokolle JavaScript-Objekte anders an als Firefox?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!