En ocasiones nos puede interesar saber las propiedades y los métodos que tiene un objeto, por ejemplo cuando estamos depurando. Para ello podemos hacer uso de la siguiente función:
function inspeccionar(obj) { var msg = ''; for (var property in obj) { if (typeof obj[property] == 'function') { var inicio = obj[property].toString().indexOf('function'); var fin = obj[property].toString().indexOf(')')+1; var propertyValue=obj[property].toString().substring(inicio,fin); msg +=(typeof obj[property])+' '+property+' : '+propertyValue+' ;\n'; } else if (typeof obj[property] == 'unknown') { msg += 'unknown '+property+' : unknown ;\n'; } else { msg +=(typeof obj[property])+' '+property+' : '+obj[property]+' ;\n'; } } return msg; }
La función nos devolverá una cadena que contiene una lista con todos los métodos y propiedades del objeto, así como sus tipos y valores.
Podemos madificarla para que nos devuelva, por ejemplo, un array de objetos, lo que nos permitiría procesarlo después. Veamos como quedaría:
function inspeccionar(obj) { var msg = new Array(); for (var property in obj) { if (typeof obj[property] == 'function') { var inicio = obj[property].toString().indexOf('function'); var fin = obj[property].toString().indexOf(')')+1; var propertyValue=obj[property].toString().substring(inicio,fin); msg[msg.length] = {'type' : (typeof obj[property]), 'name' : property, 'value' : propertyValue}; } else if (typeof obj[property] == 'unknown') { msg[msg.length] = {'type' : 'unknown', 'name' : property, value : 'unknown'}; } else { msg[msg.length] ={'type' : (typeof obj[property]), 'name' : property, 'value' : obj[property]}; } } return msg; }
Con esta versión podríamos procesar la lista para mostrarla con el formato que más nos guste. Para ello recorreriamos el array devuelto y hariamos lo deseado con cada uno de los elementos. Cada elemento sería un objeto con tres propiedades:
- type: que contiene el tipo de dato.
- name: contiene el nombre de la propiedad o método.
- value: contiene el valor de la propiedad o el prototipo de la función.
Artículos relacionados:
Artículos relacionados:
Tags: JavaScript
Coño, eso me suena, jeje
No conocía tu blog, le voy a echar un ojo
A mi me ha salvado la vida en más de una ocasión.
Pasate por aquí, y comenta, cuando y cuanto quieras. Por cierto, nos veremos este sábado.
[…] Este metodo les retornara un alert con todos los metodos que existe en la función. Fuente Me gusta:Me gustaSé el primero en decir que te gusta esta […]
[…] Este metodo les retornara un alert con todos los metodos que existe en la función. Fuente […]