¿Cómo puedo inspeccionar un objeto en un cuadro de alerta? Normalmente, alertar a un objeto arroja el nombre de nodo:
alert(document);
Pero quiero obtener las propiedades y métodos del objeto en el cuadro de alerta. ¿Cómo puedo lograr esta funcionalidad, si es posible? ¿O hay otras sugerencias?
En particular, estoy buscando una solución para un entorno de producción donde console.log y Firebug no están disponibles.
javascript
object
inspect
Valentina
fuente
fuente
console.log
enJSON.stringify
es útil.Respuestas:
Los bucles
for
-in
para cada propiedad en un objeto o matriz. Puede utilizar esta propiedad para obtener el valor y cambiarlo.Nota: las propiedades privadas no están disponibles para inspección, a menos que use un "espía"; Básicamente, anula el objeto y escribe un código que hace un bucle for-in dentro del contexto del objeto.
Porque en se parece a:
Algún código de muestra:
Editar: Hace algún tiempo, escribí a mi propio inspector, si está interesado, me complace compartirlo.
Edición 2: Bueno, escribí uno de todos modos.
fuente
¿Qué tal
alert(JSON.stringify(object))
con un navegador moderno?En el caso de
TypeError: Converting circular structure to JSON
, aquí hay más opciones: ¿Cómo serializar el nodo DOM a JSON incluso si hay referencias circulares?La documentación:
JSON.stringify()
proporciona información sobre cómo formatear o embellecer la salida.fuente
alert(JSON.stringify(object, null, 4)
donde4
es el número de espacios utilizados para la sangría.stringify
no se mostrará métodos:JSON.stringify({f: ()=>{}}) => "{}"
. Además, si la implementa el objetotoJSON
método se obtiene lo que devuelve el método, que es inútil si desea examinar el objeto:JSON.stringify({toJSON: () => 'nothin'}) => '"nothin"'
.Usar
console.dir(object)
y el complemento Firebugfuente
console.dir
función. No pude entender por qué ya no podía ver el objeto completo en Firebug. Esto ahora me lo ha arreglado. ¡Gracias!console.log
además de la conveniencia de visualización, por favorHay algunos métodos:
En un contexto de consola, a veces el .constructor o .prototype puede ser útil:
fuente
Usa tu consola:
O si está inspeccionando elementos html dom, use console.dir (objeto). Ejemplo:
O si tiene una matriz de objetos js, puede usar:
Si está generando una gran cantidad de console.log (objetos), también puede escribir
Esto le ayudará a etiquetar los objetos escritos en la consola.
fuente
console
porque estoy usando el estilo stackoverflow.com/q/7505623/1480391 y no es compatiblefuente
Esta es una flagrante estafa de la excelente respuesta de Christian. Lo acabo de hacer un poco más legible:
fuente
Aquí está mi inspector de objetos que es más legible. Debido a que el código tarda mucho en escribir aquí, puede descargarlo en http://etto-aa-js.googlecode.com/svn/trunk/inspector.js
Use así:
fuente