繁体   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