[英]Global Variable - AJAX jQuery
我正在尝试设置全局变量countryCode 。 但是该值始终为null。 我能做什么? 我尝试了很多方法。 请帮助!
function GetGeolocation(){
$.getJSON("http://ip-api.com/json/?callback=?",function(data){
$.each(data, function(k, v) {
table_body += "<tr><td>" + k + ": " + "</td><td><b>" + v + "</b></td></tr>";
if (k == "countryCode")
{
SetGeolocation(v);
}
})
});
}
function SetGeolocation(value){
countryCode = value;
console.log(countryCode); //Value
}
function Result(){
console.log(countyCode); //Null
}
$(document).ready(function(){
GetGeolocation();
Result();
});
在JavaScript中, 仅在调用函数后, 才在函数内部声明了var
关键字的变量才变为全局变量。
考虑一下:
function foo(){
bar = 123;
}
// Reference error - bar is undefined
console.log(bar);
现在在测试bar
变量之前,让我们调用foo
函数。
function foo(){
bar = 123;
}
foo();
// 123
console.log(bar);
你说对了? 对? 好。 对于您的代码,该错误非常明显,因为您之前没有调用SetGeolocation()
,所以undefined
countryCode
。 要使其按预期工作,您需要以某种方式在调用SetGeolocation()
之前调用SetGeolocation()
Result()
。
但是不要认真做。 全局变量是众所周知的不做什么事。 考虑将变量作为依赖项传递
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.