Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Область видимости. (https://javascript.ru/forum/misc/20803-oblast-vidimosti.html)

Xaver 18.08.2011 08:42

Область видимости.
 
1) Использую jQuery
function myfunc() {
    var testvariable;
    var testvariable2;
    testvariable = "string";
    testvariable2 = "string2"
    $.ajax({
        type: "POST",
        url: "/dajaxice/ajaxex1/",
        dataType: "json",
        data: { "param": testvariable2 },
        success: function(msg){
             alert(testvariable);
        }
    });
}

Какой будет являться переменная testvariable (локальной или глобальной) во время вывода ее в alert?
2) Хочется написать код который бы по нажатию кнопки выводил alert с постоянно увеличивающимся числом. Если бы я реализовывал это на С# я бы обьявил свойство класса формы presscount в конструкторе инициализировал его. И по нажатию увеличивал. Код на JS на данный момент у меня набор функций вызывающихся по событиям, в литературе пишут что глобальные переменные в JS это плохо (Технически, глобальные переменные — всего лишь свойства объекта window, поскольку весь код выполняется в его контексте.
Из этого следует, что глобальные переменные могут затирать свойства window (я уже молчу о том, что они зло, нарушают инкапсуляцию и все такое).) . Нужно писать под каждую страницу класс на JS или подход с набором функций то же имеет право на существование и пример решается без использования глобальных переменных

Octane 18.08.2011 09:19

Локальная.
Почитайте про замыкания:
http://dmitrysoshnikov.com/ecmascrip...er-6-closures/
http://javascript.ru/basic/closure


Часовой пояс GMT +3, время: 20:57.