2011-07-21 34 views
0

为什么全局变量调试得到评估为[对象对象]而不是1?考虑以下代码:为什么全局变量调试得到评估[对象对象]

var debug = 1; 
function hum(mess) { 
    alert('hum alert debug == ' + debug); 
    console.log('hum console.log debug == ' + debug); 
    if (debug == 1) { 
     console.error('hum mess == ' + mess); 
    } else { 
     console.error('hum debug != 1 mess == ' + mess); 
    } 
} 

当我的代码,所以我警觉说:“调试== 1”,但后来(的PhoneGap加载完毕后也许)它开始给我调试== [对象的对象首先运行EVAL正确作出]。我正在开发使用iPhone手机使用Xcode和iPhone模拟器。

感谢

+0

由于字符串转换工作的方式。基本上js类型是一个小姐。也警觉是愚蠢的,停止使用它。 – Raynos

+1

可能是您的代码和正在使用的库之间的冲突?他们也可以使用名为debug的变量,但将其设置为对象。 – DoctorMick

+2

它看起来像'debug'正在被一些其他代码所取代。使用'DEBUG'并查看是否仍然发生相同的事情。 – Tomalak

回答

2

看起来你已经声明debug作为一个全局变量,它可能得到其他代码重新分配加载/稍后执行。尝试更改变量名称或使其不全球。

+0

是的,它,调试geting重新分配在phonegap我猜。想到这一点,但似乎是一厢情愿的想法是如此简单。谢谢。 –

0

稍后在代码中的某处,工作的平台将调试的值更改为对象。 从调试更改变量名smthing NT那么明显像new_debug