¿Cómo mostrar el objeto completo en la consola de Chrome?

155
var functor=function(){
    //test
}

functor.prop=1;

console.log(functor);

esto solo muestra la parte funcional del functor, no puede mostrar las propiedades del functor en la consola.

primavera amorosa
fuente

Respuestas:

245

Úselo console.dir()para generar un objeto explorable en el que puede hacer clic en lugar de la .toString()versión, de esta manera:

console.dir(functor);

Imprime una representación de JavaScript del objeto especificado. Si el objeto que se registra es un elemento HTML, se imprimen las propiedades de su representación DOM [1]


[1] https://developers.google.com/web/tools/chrome-devtools/debug/console/console-reference#dir

Nick Craver
fuente
1
Cabe señalar que solo imprimir varNameen la consola de Chrome y presionar Enter da el mismo efecto que console.dir(varName).
Vadzim
118

Puede obtener mejores resultados si intenta:

console.log(JSON.stringify(functor));
BastiBen
fuente
esta respuesta es excelente, pero creo que no funciona con el ejemplo anterior, probé en una nueva pestaña y devuelve indefinido
aitorllj93
1
Con el debido respeto a esta respuesta, eventualmente devuelve una cadena que representa el objeto, y no un objeto "explorable" en la consola, como si la pregunta se tratara aquí. Es cierto, si ejecuta esta cadena de salida a través de JSON.parse, volverá a su formato de objeto, pero luego la consola aún mostrará un ".toString ()" y volveremos al punto de partida. La respuesta aquí con el uso de "console.dir" es la mejor opción para la pregunta en cuestión.
TheCuBeMan
21

Puede obtener resultados aún mejores si intenta:

console.log(JSON.stringify(obj, null, 4));
Trident D'Gao
fuente
Esta respuesta mejora en @ BastiBen formateando la salida.
Xeoncross
12
var gandalf = {
  "real name": "Gandalf",
  "age (est)": 11000,
  "race": "Maia",
  "haveRetirementPlan": true,
  "aliases": [
    "Greyhame",
    "Stormcrow",
    "Mithrandir",
    "Gandalf the Grey",
    "Gandalf the White"
  ]
};
//to console log object, we cannot use console.log("Object gandalf: " + gandalf);
console.log("Object gandalf: ");
//this will show object gandalf ONLY in Google Chrome NOT in IE
console.log(gandalf);
//this will show object gandalf IN ALL BROWSERS!
console.log(JSON.stringify(gandalf));
//this will show object gandalf IN ALL BROWSERS! with beautiful indent
console.log(JSON.stringify(gandalf, null, 4));
Kean Amaral
fuente
8

Esto funcionó perfectamente para mí:

for(a in array)console.log(array[a])

puede extraer cualquier matriz creada en la consola para buscar / reemplazar la limpieza y el uso posterior de estos datos extraídos

domSurgeon
fuente
3
un poco más detallado:for (i in arr) { console.log(i); console.log(arr[i]); }
Geo
no generará propiedades y métodos que no sean enumerables
Barbu Barbu
0

Escribí una función para imprimir cosas convenientemente en la consola.

// function for debugging stuff
function print(...x) {
    console.log(JSON.stringify(x,null,4));
}

// how to call it
let obj = { a: 1, b: [2,3] };
print('hello',123,obj);

saldrá en la consola:

[
    "hello",
    123,
    {
        "a": 1,
        "b": [
            2,
            3
        ]
    }
]
John Henckel
fuente
0

Con los navegadores modernos, console.log(functor)funciona perfectamente (se comporta igual que a console.dir).

akim
fuente
0

Hice una función de la respuesta Trident D'Gao.

function print(obj) {
  console.log(JSON.stringify(obj, null, 4));
}

Cómo usarlo

print(obj);
Jens Törnell
fuente
-5

Para generar obj:

console.log(obj, null, 4)
Kulakov Serg
fuente