9

Se si esegue questo codice:Soluzione per la registrazione di oggetti di consolare in Chrome

var foo = {bar: 'baz'}; 
window.console.log(foo); 
foo.bar = 'bla'; 

La console mostra questo dopo l'espansione dell'oggetto:

(quando si accede oggetti e gli array, è non il valore di runtime registrato)

Questo errore è stato documentato più di un anno fa:

http://code.google.com/p/chromium/issues/detail?id=50316

Esiste una soluzione alternativa per la registrazione di oggetti in Chrome?

+0

Una soluzione semplice potrebbe essere quella di sovrascrivere 'console.log' e con una funzione che clona e registra l'input (anche se probabilmente sarebbe una copia superficiale). –

risposta

9

Io uso solo JSON.stringify quando ne ho bisogno. Non so se lo farà per te, ma è facile ed efficace ai fini del debug.

questo non è un bene per gli oggetti con riferimenti alle funzioni in esso Tho, quindi se avete bisogno che considererei utilizzando una copia completa dell'oggetto (si può usare eccellente metodo di jQuery extend) o rotolo il proprietario di funzione che la registrazione loop ricorsivamente sopra l'oggetto e stamparlo.

+0

Ho anche usato 'JSON.stringify (stuff, true, 2)' che "stamperà" l'output. Utile quando il tuo JSON è grande o indisciplinato. – coblr

0

È possibile utilizzare una libreria di registrazione dedicata come la mia log4javascript.

Problemi correlati