全局变量 - AJAX jQuery
Global Variable - AJAX jQuery
我正在尝试设置全局变量 countryCode。但该值始终为空。我能做些什么?我尝试了很多方法。请帮助!
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);
你明白了吗?正确的?好的。
至于您的代码,错误很明显 countryCode
is undefined
只是因为您之前没有调用 SetGeolocation()
。要使其按预期工作,您需要在调用 Result()
.
之前以某种方式调用 SetGeolocation()
但不要当真。全局变量是众所周知的什么不该做的事情。考虑将变量作为依赖项传递
我正在尝试设置全局变量 countryCode。但该值始终为空。我能做些什么?我尝试了很多方法。请帮助!
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);
你明白了吗?正确的?好的。
至于您的代码,错误很明显 countryCode
is undefined
只是因为您之前没有调用 SetGeolocation()
。要使其按预期工作,您需要在调用 Result()
.
SetGeolocation()
但不要当真。全局变量是众所周知的什么不该做的事情。考虑将变量作为依赖项传递