[原创]javascript模拟PHP的print_r函数
昨天整理代码的时候发现之前自己写过一个这样的js代码,挺实用的,而且经常用!<br/>在这里介绍一下吧<br/><br/>对于某个对象,某个参数不熟悉不了解或者需要调试的话,php里头大家都管用print_r把参数展开,便可一目了然了。这个函数移植到javascript同样地意义重大,因为javascript的调试比php更加麻烦,故此,在js上它也是个非常好的调试分析工具。<br/><br/>代码如下:<br/><div class="quote">function print_r(o,re){<br/> var res = "";<br/> for(var name in o){<br/> if(o[name]){<br/> var val = o[name];<br/> switch(typeof(val)){<br/> case "string" :<br/> val = val.replace(/</g,"<").replace(/>/g,">")<br/> break;<br/> case "function":<br/> val = "function(){...}";<br/> break; <br/> } <br/> res+=name+" => "+val+"\n"; <br/> }<br/> }<br/> res = "<pre>"+res+"</pre>"<br/> if(re) return res;<br/> var oSpan = document.getElementById("span_print_r");<br/> if(!oSpan){<br/> oSpan = document.createElement("span"); <br/> oSpan.id="span_print_r";<br/> document.body.insertBefore(oSpan,document.body.childNodes[0]);<br/> }<br/> oSpan.innerHTML = res; <br/>}</div>当然如果要把子对象展现出来的话,可以用递归。不过对于DOM对象的分析,最好别用递归,不然容易陷入死循环。不能贪心,还是一个个来吧~