javascript中的变量范围

时间:2014-07-12 17:52:44

标签: javascript variables global-variables scope

我希望在控制台中显示的结果是name2,而不是name1

function showInfo() {
 var NAME="name1";//1
 FB.api('/me', function(response) {
  document.getElementById('status').innerHTML =
  response.name;   
  NAME="name2";//2
});
 FB.api("/me/picture?width=35&redirect=0&type=normal&height=35", function (response) {

   console.log(NAME);
 }
}

我确实喜欢obove但是导致控制台的结果是name1 如何在// 2中更改NAME的值,而在consle中的结果为name2。 非常感谢!

1 个答案:

答案 0 :(得分:4)

这些调用是异步的,所以你可以尝试这样的事情:

function showInfo() {
    var NAME="name1";//1
    FB.api('/me', function(response) {
        document.getElementById('status').innerHTML = response.name;   
        NAME="name2";//2
        FB.api("/me/picture?width=35&redirect=0&type=normal&height=35", function (response) {
            console.log(NAME);
        });
    });
}