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が window オブジェクトのメソッドを呼び出して、「bar」という小さなメッセージを表示します。

また、関数の本体でカンマは何を表していますか?

これは、実際には単一のステートメントを使用してセミコロンで区切るのではなく、代わりにを使用し、カンマで区切る方法にすぎません。(これ自体は JavaScript の演算子ですが、式のシーケンスを表す以上のことはなく、論理的にそれらを接続することはありません。)

ステートメントが有効な式になる限り、それを行うことができます。この場合、それを行うことによる実際の利点はわかりませんが、単一の式の結果がfe &&または||などの他の論理演算子によって論理的に結合され、この式全体の値がその関数の戻り値として使用されるため、それを呼び出す他の関数/コード部分が関数の成功または失敗をそのように判断できます。

JavaScript で実際に式を構成するものに慣れていない場合は、たとえばここhttp://lib.ru/JAVA/javascr/expr.html#expr (またはお好みの JS ブック) を参照してください。

于 2012-08-04T18:12:42.003 に答える