2010-11-25 5 views
1

Я думаю, что здесь что-то не хватает, но я действительно не вижу, что это такое. Должна ли переменная, объявленная вне функции, доступна на всей странице? То, что я пытаюсь здесь, я уже видел раньше, поэтому, я думаю, основная идея должна работать. В этом случае я всегда получаю предупреждение, чтобы сказать мне «false», поэтому, я думаю, он всегда входит, если, таким образом, skipUserDataEntry имеет неопределенное значение вместо true. Надеюсь, кто-то может помочь.Значения переменных перекрестных ссылок Javascript

<script type="text/javascript"> 
    skipUserDataEntry = true; 
    </script> 

    <script type="text/javascript"> 
     Ext.onReady(function() { 
     if (typeof skipUserDataEntry == "undefined") 
     var skipUserDataEntry = false; 
     alert (skipUserDataEntry); 
     } 
    </script> 

ответ

5

Пара проблем. Ваша глобальная переменная прекрасна. Но любая переменная, объявленная внутри функции() ANYWHERE будет облагаться для этого WHOLE функция.

Это означает, что ваша строка, читающая var skipUserDataEntry = false;, фактически объявляет новую переменную skipUserDataEntry для области функций, затеняя глобальную.

Удалите var, и вы увидите только глобальную переменную области.

Ext.onReady(function() { 
    if (typeof skipUserDataEntry == "undefined") 
     skipUserDataEntry = false; 
    alert (skipUserDataEntry); 
    }); 

Во-вторых, вам не хватает концевой скобки.

+0

Недопустимая скобка была опечаткой, так как у меня есть другие вещи, продолжающиеся на Ext.onReady, но не вставляли их. Спасибо за помощь, var работает. – 2010-11-25 09:28:02

Смежные вопросы