Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.08.2011, 12:43
Аспирант
Отправить личное сообщение для AquaGen Посмотреть профиль Найти все сообщения от AquaGen
 
Регистрация: 01.03.2009
Сообщений: 41

Как сделать локальную переменную глобальной
сабж
Ответить с цитированием
  #2 (permalink)  
Старый 21.08.2011, 12:52
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

function fnc(){
  var localVariable = 5;
  window.globalVariable = localVariable;
};

fnc();

alert([typeof localVariable, typeof globalVariable])
Ответить с цитированием
  #3 (permalink)  
Старый 21.08.2011, 12:53
Аспирант
Отправить личное сообщение для AquaGen Посмотреть профиль Найти все сообщения от AquaGen
 
Регистрация: 01.03.2009
Сообщений: 41

просто добавить window.?
не работает

$.ajax({
				  url: "/modules/register/userfree.php",
				  success: function(xml) {
						window.errorname=$(xml).text();	
					},
				  data:"username="+$(date).attr('value'),
				  dataType: "xml"
				});
			alert(window.errorname);

undefined
Цитата:
Uncaught exception: ReferenceError: Undefined variable: errorname

Последний раз редактировалось AquaGen, 21.08.2011 в 13:01.
Ответить с цитированием
  #4 (permalink)  
Старый 21.08.2011, 13:03
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от AquaGen
не работает
прекрасно работает.
просто в вашем коде, вы вызываете alert до того, как выполнится запрос, и будет выставлена переменная

Так, что учите про ассинхронность.
ну ив тему статьи, стоит почитать: http://javascript.ru/basic/functions#oblasti-vidimosti
Ответить с цитированием
  #5 (permalink)  
Старый 21.08.2011, 13:05
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от AquaGen
просто добавить window.?
не работает
Может просто нужно дождаться окончания работы функции которая заносит данные в переменную, а уж потом вызывать alert
Ответить с цитированием
  #6 (permalink)  
Старый 21.08.2011, 14:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от AquaGen
просто добавить window.?
не нужно ничего добавлять, вот абстрактный пример:
(function() {
    var foo;
    $.get('http://example.com?key=value', function(data, status) {
        if(status == 'success') {
            foo = data;
            // тут и работайте с foo
        }
    });
    // тут foo - undefined, до тех пор пока не выполнится условие выше
}());

Последний раз редактировалось monolithed, 21.08.2011 в 14:36.
Ответить с цитированием
  #7 (permalink)  
Старый 21.08.2011, 14:59
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от monolithed
foo - undefined, до тех пор пока не выполнится условие выше
Плохой совет, потому что пока foo не объявили, будет ReferenceError:
if( false )
  foo = true;
try{
  alert( foo );
} catch( error ) {
  alert( error );
};
Ответить с цитированием
  #8 (permalink)  
Старый 21.08.2011, 15:07
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Sweet
Плохой совет, потому что пока foo не объявили, будет ReferenceError:
ReferenceError не будет, т.к. переменная foo объявлена, но не определена.

Последний раз редактировалось monolithed, 21.08.2011 в 15:13.
Ответить с цитированием
  #9 (permalink)  
Старый 21.08.2011, 15:22
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от monolithed
ReferenceError не будет, т.к. переменная foo объявлена, но не определена.
Ой Я и не заметил этого
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать fullscreen -=1100=- Общие вопросы Javascript 8 30.07.2012 09:53
Как сделать локальную переменную глобальной?? Дмитрий Общие вопросы Javascript 8 02.11.2010 03:33
Нужно сделать плавное появление текстового поля как на сайте vkontakte.ru paratrooper1981 Элементы интерфейса 1 23.11.2009 18:24
Как сделать вкладку с 'плюсами и минусами'??? Monopolist Элементы интерфейса 2 05.08.2009 14:07
Как обозначить переменную выбранную в FileChooser? woo_hoo Общие вопросы Javascript 4 03.07.2008 12:58