0

我有一个示例代码:

window.fbAsyncInit = function() {
   FB.init({appId: appId, status: true, cookie: true, xfbml: true});

   // Additional initialization code such as adding Event Listeners goes here
   FB.getLoginStatus(function(response) {
      if (response.status === 'connected') {
         getFlag(1);
      } else if (response.status === 'not_authorized') {
         getFlag(2);
      } else {
         getFlag(3);
      }
    });   
};
var f = function getFlag(flag){};
alert(f);

结果是 a function getFlag(flag) {},如果 = 1 正好,如何得到这个值

4

1 回答 1

0

您的代码中有几点。

1)调用getFlag函数将不会被执行,因为你将getFlag函数分配给了一个变量f。所以你需要使用f().

2)您的函数是异步调用,因为您的代码alert(f)将在函数执行之前到达。

3)如果你想要标志值,为什么不声明一个变量并分配它。

var flag;
 FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
     this.flag = 1;
  } else if (response.status === 'not_authorized') {
     this.flag = 2;
  } else {
     this.flag = 3;
  }
});   
于 2012-11-17T16:26:08.517 回答