In Chrome l' console
oggetto definisce due metodi che sembrano fare la stessa cosa:
console.log(...)
console.dir(...)
Ho letto da qualche parte online che dir
prende una copia dell'oggetto prima di registrarlo, mentre log
passa 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 foo
un valore di 2. Lo stesso vale se ripeti l'esperimento usando dir
invece di log
.
La mia domanda è: perché esistono queste due funzioni apparentemente identiche console
?
console.dir
non cambia, quindi fa una grande differenza.
console.log([1,2])
econsole.dir([1,2])
vedrai la differenza.