Не могу прочитать глобальные переменные в функции JavaScript :( - PullRequest
1 голос
/ 08 марта 2011

У меня странная проблема с исчезающими глобальными переменными. Вот несколько урезанных полупсевдокодов:

var globy = 99;

jQuery.get("file", function(){
  check();
})

function check(){
 main();
}

function main(){
 forloop
  whileloop
   forloop
    while(test()){}
}

function test(){
  //globy causes a reference error here
}

Это должно объяснить структуру кода. Вплоть до функции test () "globy" нормально, но внезапно внутри test () все глобальные переменные исчезают. Какого черта?

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Если вы упаковываете все в $(document).ready(), но ваша функция test() находится вне документа, у вас возникнет проблема с областью видимости.

$(document).ready(function () {
    var globy = 99;

    jQuery.get("file", function () {
        check();
    })

    function check() {
        main();
    }

    function main() {
        forloop
        whileloop
        forloop
        while (test()) {}
    }
});

function test() {
    //globy causes a reference error here
}

Кроме того, будет трудно сказать без настоящего js.

1 голос
/ 08 марта 2011

Ваша функция test (), вероятно, определена вне области, в которой находится globy. Без подробностей сложно сказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...