可有人请解释这段代码至极的我尝试deceifer 它仍然看起来很滑稽我理解jQuery的Facebook登录插件语法
因为我需要Facebook的洛logic..and还因为我想明白了什么代码does..scopewise等。
至极功能第一次运行时,一个外或内一个 这是编写插件代码的另一种方式..
var openid = {
},doJsFacebookLogin: function (a) {
window.FB.login(function (b) {
b.authResponse && (b = "https://stackoverflow.com/users/oauth/facebook/js?accessToken=" + encodeURI(b.authResponse.accessToken),
a && (b += "&returnUrl=" + encodeURI(a)), window.location = b)
}, openid.facebook_login_params)
},
还做什么逗号”在体内代表功能?
facebookLogin: function (a, b, c) {
c || ($("." + b).css("cursor", "wait"), openid.facebook_app_id ? openid.doJsFacebookLogin() : (this.setOAuthInfo(a.oauth_version, a.oauth_server), c || $("#openid_form").submit()))
},
etc...
感谢理查德..
非常感谢你的解释,只是对代码最后一个,我看不出有什么代码块这一关...},openid.facebook_login_params)..我只是看到一个右括号至极显然是在外部功能的身体? – Richard 2012-08-04 18:31:50
的'}'关闭“内”功能的功能体(这是一个“匿名”的功能,因为它没有分配给它的名字),以及')'然后关闭被赋予参数列表函数window.FB.login。所以它实际上是函数window.FB.login的调用,它的第一个参数是一个匿名函数,第二个参数是一个“openid.facebook_login_params”对象。 [...] – CBroe 2012-08-04 19:39:01
[续]]将函数引用作为参数传递给另一个函数称为“回调函数” - 当“外部”函数完成必须完成的操作时,它会调用“内部”函数,通常会给它一些参数它本身就是创建/请求的。在JavaScript中这是一个非常普遍的概念,特别是当涉及到异步工作流时(这通常是使用Facebook API方法时的情况,因为他们必须发出HTTP请求,这需要一些时间 - 否则浏览器的用户界面将会“冻结”直到请求完成)。 – CBroe 2012-08-04 19:40:04