En Chrome el objeto console
define dos métodos que parecen hacer lo mismo:¿Cuál es la diferencia entre console.dir y console.log?
console.log(...)
console.dir(...)
He leído en alguna línea que dir
toma una copia del objeto antes de iniciar la misma, mientras que log
simplemente pasa la referencia a la consola , lo que significa que para el momento en que vaya a inspeccionar el objeto que inició sesión, puede haber cambiado. Sin embargo, algunas pruebas preliminares sugieren que no hay diferencia y que ambos muestran potencialmente objetos en diferentes estados que cuando se registraron.
Prueba esto en la consola de cromo (Ctrl + Shift + J) para ver lo que quiero decir:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Ahora, expanda el [Object]
debajo de la declaración de registro y observe que se muestra foo
con un valor de 2. Lo mismo es cierto si repite el experimento usando dir
en lugar de log
.
Mi pregunta es, ¿por qué existen estas dos funciones aparentemente idénticas en console
?
Pruebe 'console.log ([1,2])' y 'console.dir ([1,2])' y verá la diferencia. –
En firebug, el contenido de un objeto registrado con 'console.dir' no cambia, por lo que hace una gran diferencia. –
Tenga cuidado con 'console.dir()': esta función es [no estándar] (https://developer.mozilla.org/docs/Web/API/Console/dir)! Así que no lo use en la producción;) – fred727