How to inspect javascript Object property

This is a useful tool whenever you work with JavaScript and the compatibility issues between navigators.

You can inspect any JavaScript objects and list them as indented, ordered by levels.
It shows you type and property name. If an object property can’t be accessed, an error message will be shown.

Using the Code

function inspect(obj [, maxLevels [, level]])

Input Vars

obj: Object to inspect
maxLevels: Optional. Number of levels you will inspect inside the object. Default MaxLevels=1
level: RESERVED for internal use of the function

Return Value

HTML formatted string containing all values of inspected object obj.

function inspect(obj, maxLevels, level)
{
	var str = '', type, msg;	
	// Start Input Validations	
	// Don't touch, we start iterating at level zero	
	if(level == null) level = 0;	
	// At least you want to show the first level	
	if(maxLevels == null) maxLevels = 1;	
	if(maxLevels < 1)	
	return '<font color="red">Error: Levels number must be > 0</font>';	
	// We start with a non null object	
	if(obj == null)	
	return '<font color="red">Error: Object <b>NULL</b></font>';	
	// End Input Validations	
	// Each Iteration must be indented	
	str += '<ul>';	
	// Start iterations for all objects in obj

	for(property in obj)
	{
		try	
		{	
			// Show "property" and "type property"
			
			type = typeof(obj[property]);	
			str += '<li>(' + type + ') ' + property +	
			( (obj[property]==null)?(': <b>null</b>'):('')) + '</li>';	
			// We keep iterating if this property is an Object, non null	
			// and we are inside the required number of levels	
			if((type == 'object') && (obj[property] != null) && (level+1 < maxLevels))	
			str += inspect(obj[property], maxLevels, level+1);	
		}
	
		catch(err)	
		{	
			// Is there some properties in obj we can't access? Print it red.		
			if(typeof(err) == 'string') msg = err;		
			else if(err.message) msg = err.message;		
			else if(err.description) msg = err.description;		
			else msg = 'Unknown';		
			str += '<li><font color="red">(Error) ' + property + ': ' + msg +'</font></li>';	
		}
	}

	// Close indent
	str += '</ul>';
	return str;
}
 
Advertisements

2 thoughts on “How to inspect javascript Object property

  1. Thanks for the post. It is awesome for those like me who will work in javascript. I want more blogs from you, like this

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s