1

有人可以解释一下我试图破译的这段代码吗?在我看来它仍然很有趣。

因为我需要 Facebook 登录逻辑……也因为我喜欢了解代码的作用……范围等……

哪个函数先运行,外部函数还是内部函数?这是另一种编写插件代码的方式吗?

var openid = {


 },doJsFacebookLogin: function (a) {
        window.FB.login(function (b) {
            b.authResponse && (b = "/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...
4

1 回答 1

1

哪个函数先运行,外部函数还是内部函数

当外层运行时,它会调用内层。

这基本上没有什么不同,比方说

function foo() {
  alert("bar");
}

- 你自己会foo()在你的代码中调用某个地方,然后那个函数调用alert窗口对象的方法来显示一条小消息,说“bar”。

逗号在正文中代表什么?

这只是一种实际上没有单个语句并用分号分隔它们的方法——而是使用表达式,并用逗号分隔它们。(它本身是 JavaScript 中的运算符,但它仅表示一系列表达式,它不以任何方式在逻辑上连接它们。)

只要一个语句也构成一个有效的表达式,你就可以这样做;尽管在这种情况下我看不出这样做有什么实际好处——如果单个表达式的结果通过其他逻辑运算符如 fe && 或 || 逻辑连接在一起,那么整个表达式的值会有所不同用作该函数的返回值,以便调用它的其他函数/代码部分可以以这种方式确定函数的成功或失败。

如果您不熟悉 JavaScript 中表达式的实际构成,请在此处查看示例http://lib.ru/JAVA/javascr/expr.html#expr(或查看您选择的 JS 书籍)。

于 2012-08-04T18:12:42.003 回答