为什么全局var debug被评估为[object Object]而不是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);
}
}
当我的代码首次运行时,eval正常运行,因此我的警报显示'debug == 1'但稍后(可能在phonegap完成加载后)它开始给我debug == [object Object]。我正在使用xcode和iphone模拟器为ios开发使用phonegap。
感谢
答案 0 :(得分:2)
看起来您已将debug
声明为全局变量,并且可能会被稍后加载/执行的其他代码重新分配。尝试更改变量名称或使其不是全局变量。
答案 1 :(得分:0)
稍后在您的代码中,您正在处理的平台会将debug的值更改为对象。 将变量名称从debug改为smthing nt,就像new_debug
那样明显答案 2 :(得分:0)
您的调试变量被phonegap取代,后者会创建调试对象,请参阅:
http://www.daveoncode.com/2010/01/12/debugging-phonegap-applications-using-xcode-console/
来自那里的片段: 幸运的是,PhoneGap提供了一种访问Xcode控制台和打印消息的方法,可以选择三个不同的级别:日志,警告和错误。为了打印消息,我们必须以这种方式使用调试对象,它具有作用域窗口(它是一个全局对象):