Почему отладка глобальной переменной оценивается как [object Object] - PullRequest
0 голосов
/ 21 июля 2011

Почему глобальная отладочная переменная оценивается как [объектный объект] вместо 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», но позже (возможно, после завершения загрузки телефонной пробки) оно начинает давать мне отладку == [Объект Object].Я занимаюсь разработкой, используя phonegap для ios, используя xcode и iphone simulator.

спасибо

Ответы [ 3 ]

2 голосов
/ 21 июля 2011

Похоже, вы объявили debug как глобальную переменную, и, вероятно, она будет переназначена другим кодом, загруженным / выполненным позже.Попробуйте изменить имя переменной или сделать ее не глобальной.

0 голосов
/ 21 июля 2011

Ваша переменная отладки заменяется на phonegap, который создает объект отладки, см .:

http://www.daveoncode.com/2010/01/12/debugging-phonegap-applications-using-xcode-console/

Фрагмент оттуда: К счастью, PhoneGap предлагает способ доступа к консоли Xcode и печати сообщений с помощьювыбор между тремя различными уровнями: журнал, предупреждение и ошибка.Чтобы напечатать сообщение, мы должны использовать отладочный объект , у которого есть окно контекста (это глобальный объект) , таким образом:

0 голосов
/ 21 июля 2011

где-то позже в вашем коде платформа, над которой вы работаете, изменяет значение отладки на объект. измените имя переменной с debug на что-то, что очевидно, например, new_debug

...