[英]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.