weixin_33720186 2015-03-07 23:20 采纳率: 0%
浏览 24

全局变量-AJAX jQuery

I'm trying to set the global variable countryCode. But the value is always null. What can I do? I tried many ways. PLS HELP!

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();
});
  • 写回答

1条回答 默认 最新

  • weixin_33721344 2015-03-07 23:39
    关注

    In JavaScript, a variable which has been declared without var keyword inside a function becomes global only after function's call.

    Consider this:

    function foo(){
        bar = 123;
    }
    
    // Reference error - bar is undefined
    console.log(bar);
    

    Now before testing bar variable, let's call the foo function.

    function foo(){
        bar = 123;
    }
    
    foo();
    
    // 123
    console.log(bar);
    

    You got it? Right? Good. As for your code, the error is pretty obvious countryCode is undefined just because you didn't call SetGeolocation() before. To make it work as you expect you need somehow call SetGeolocation() before you call Result().

    But don't do this seriously. Global variables is well-known what not to do thing. Consider passing a variable as a dependency instead

    评论

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路