簡體   English   中英

全局變量-AJAX jQuery

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM