假设将对象赋给test,此时test是也是对象。
var test = object;
一、查看对象内容(一级对象)。
for(i in test ){
alert(i); //获得属性
alert(test[i]); //获得属性值
}
二、查看对象里的对象(二级及以上)
for(i in test ){
alert(i);
alert(test[i].toSource());
}
比如在微信支付中的应用,微信公众号支付,使用JS调起微信支付:
<script type="text/javascript">
var jsApiParameters = {$jsApiParameters};
function jsApiCall()
{
//alert(jsApiParameters.appId);
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
jsApiParameters,
function(res)
{
//WeixinJSBridge.log(res.err_msg);
//alert(res.err_msg);
for(i in res ){
alert(i); //获得属性
alert(res[i]); //获得属性值
}
if(res.err_msg == 'get_brand_wcpay_request:ok')
{
//alert(res.err_msg);
window.location.href=APP+'?m=Index&a=index&sid='+sid+'&fuid='+fuid;
}
else if(res.err_msg == 'get_brand_wcpay_request:cancel')
{
//用户取消
}
else if(res.err_msg == 'get_brand_wcpay_request:fail')
{
//发送失败
}else if(res.err_msg == 'access_denied')
{
//支付处于测试状态或者未在授权目录,前往测试目录支付完成上线
//$('#pay_test').show();
}
}
);
}
function callpay()
{
if (typeof WeixinJSBridge == "undefined")
{
if( document.addEventListener )
{
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}
else if (document.attachEvent)
{
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}
else
{
jsApiCall();
}
}
</script>
普通的Alert只会显示object,根本看不到实际内容,所以在手机端循环取出对象内容就非常好了,一下子就可以知道错误信息是什么