In Chrome wird die console
Objekt definiert zwei Methoden, die scheinbar dasselbe bewirken:
console.log(...)
console.dir(...)
Ich habe irgendwo im Internet gelesen, dass dir
nimmt eine Kopie des Objekts, bevor es protokolliert wird, während log
gibt nur den Verweis an die Konsole weiter, was bedeutet, dass sich das protokollierte Objekt zu dem Zeitpunkt, zu dem Sie es untersuchen, bereits geändert haben kann. Einige vorläufige Tests deuten jedoch darauf hin, dass es keinen Unterschied gibt und dass beide darunter leiden, dass sie möglicherweise Objekte in anderen Zuständen anzeigen als zum Zeitpunkt der Protokollierung.
Versuchen Sie dies in der Chrome-Konsole ( Ctrl + Shift + J ), um zu sehen, was ich meine:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Erweitern Sie nun die [Object]
unter der Protokollanweisung und stellen Sie fest, dass dort steht foo
mit einem Wert von 2. Das Gleiche gilt, wenn Sie das Experiment mit dir
anstelle von log
.
Meine Frage ist, warum es diese beiden scheinbar identischen Funktionen auf console
?