In Chrome l' consoleoggetto definisce due metodi che sembrano fare la stessa cosa:
console.log(...)
console.dir(...)
Ho letto da qualche parte online che dirprende una copia dell'oggetto prima di registrarlo, mentre logpassa solo il riferimento alla console, il che significa che quando vai a ispezionare l'oggetto che hai registrato, potrebbe essere cambiato. Tuttavia, alcuni test preliminari suggeriscono che non vi è alcuna differenza e che entrambi soffrono potenzialmente di mostrare oggetti in stati diversi rispetto a quando sono stati registrati.
Prova questo nella console di Chrome ( Ctrl+ Shift+ J) per vedere cosa intendo:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Ora, espandi [Object]sotto l'istruzione log e nota che mostra fooun valore di 2. Lo stesso vale se ripeti l'esperimento usando dirinvece di log.
La mia domanda è: perché esistono queste due funzioni apparentemente identiche console?
console.dirnon cambia, quindi fa una grande differenza.


console.log([1,2])econsole.dir([1,2])vedrai la differenza.