keys Cómo inspeccionar objetos Javascript



object to array javascript (6)

¿Cómo puedo inspeccionar un objeto en un cuadro de alerta? Normalmente, alertar a un objeto solo 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 alguna otra sugerencia?

Particularmente, estoy buscando una solución para un entorno de producción donde console.log y Firebug no están disponibles.

https://ffff65535.com




Hay algunos métodos:

 1. typeof tells you which one of the 6 javascript types is the object. 
 2. instanceof tells you if the object is an instance of another object.
 3. List properties with for(var k in obj)
 4. Object.getOwnPropertyNames( anObjectToInspect ) 
 5. Object.getPrototypeOf( anObject )
 6. anObject.hasOwnProperty(aProperty) 

En un contexto de consola, a veces el .constructor o .prototype puede ser útil:

console.log(anObject.constructor ); 
console.log(anObject.prototype ) ; 

Los bucles for - in para cada propiedad en un objeto o matriz. Puede usar 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, anulas el objeto y escribes un código que crea un bucle for-in dentro del contexto del objeto.

Para en se ve como:

for (var property in object) loop();

Algunos ejemplos de código:

function xinspect(o,i){
    if(typeof i=='undefined')i='';
    if(i.length>50)return '[MAX ITERATIONS]';
    var r=[];
    for(var p in o){
        var t=typeof o[p];
        r.push(i+'"'+p+'" ('+t+') => '+(t=='object' ? 'object:'+xinspect(o[p],i+'  ') : o[p]+''));
    }
    return r.join(i+'\n');
}

// example of use:
alert(xinspect(document));

Editar: Hace un tiempo, escribí mi propio inspector, si está interesado, me complace compartirlo.

Editar 2: Bueno, escribí uno de todos modos.


Use console.dir(object) y el plugin Firebug


var str = "";
for(var k in obj)
    if (obj.hasOwnProperty(k)) //omit this test if you want to see built-in properties
        str += k + " = " + obj[k] + "\n";
alert(str);




inspect