我遇到一个奇怪的问题,全局变量消失在我身上。这是一些精简的半伪代码:
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()内部所有全局变量都消失了。到底是什么?
答案 0 :(得分:2)
如果您要将所有内容包装在$(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 :(得分:1)
您的test()函数可能在globy
所在的范围之外定义。没有更多细节,很难说。