全局变量????不是由函数

时间:2016-01-23 17:56:07

标签: javascript

好的,我已经看了几个问题,现在感到很困惑。

我有一个代码说:

var basket = null;

function loadBasket(){
    // do somesthing
    basket = "something";
    console.log(basket);
    load();
}

function load(){
    // do something with basket variable
}

loadBasket();

即使我之前已在loadBasket()函数中设置了load函数,load函数似乎也会返回null。我唯一能想到的就是我称之为功能的顺序。我在其他网站上有类似的功能可以正常工作,但事实并非如此。订单是否有我遗漏的东西。如果有人不介意的话,请有人解释一下。

控制台日志返回我所取代的"",所以为什么以下函数无法识别新更改的变量。

编辑:

好吧我设置它是因为我不清楚回调并使用帖子请求。所以真正的功能与此相似。

var basketId = readCookie('basket');

function loadBasket(){
    $.post("test.php", {"email":email}, function(data){
         if(data = 0){
             basketId = readCookie('basket');
         }
         if(data == null){
             basketId = data;
         }
         else{
             basketId = data;
             console.log(basketId);
             load();
         }
    });
}

function load()
    if(basketId == null){
        console.log(basketId);
        //do something
    }
    else{
        $.post('basket.php', {"basketId":basketId}
    }
}

pageLoad();
它有点复杂,但想法是一样的,虽然它会起作用,但它确实没有用,但即使console.log显示了basketId的数据也没有。在加载部分,即使其他console.log显示basketId发生更改,它也就像篮子为空一样。就像我说的那样,我在其他页面上有其他功能,但是相同但是有效。

编辑2:

其他有效的功能:

var basketId = readCookie("basket");

function loadTables(){
   if(something){
       $.post("test.php", {"basketId":basketId}, function(data){
          //do something with data
       });
   }
   else{
       //do something
   }
}

function loginCheck(){
     if(something){
        $.post("test2.php", {"email":email}, function(data2){
           if(something){
                createCookie('basket', data2, 0);
                basketId = data2;
                loadTables();
           }
           else{
                return false;
           }
        });
     }
     else{
          return false;
     }
 }

 loginCheck();

0 个答案:

没有答案