0

誰かがこの JavaScript 構文を説明してくれませんか。

n: { } とはどういう意味ですか?

AVSetFocus が nobject を返すことを意味しますか (「フィールド」t、f、および a で構成される一時的な名前 n が付けられています。t はオブジェクト (のように見えます)、f はオブジェクト t の関数であり、 aは配列ですか?

したがって、AVSetFocus はオブジェクトと関数と配列を返します。この関数は実際に SetFocusToField を呼び出しますか?

このスタイルは何と呼ばれていますか?

少し混乱しました。

function AVSetFocus(d, b) {
    return {
        n: {
            t: FocusMgr,
            f: FocusMgr.SetFocusToField,
            a: [d, b]
        }
    }
}

これも見つけました:

var FocusMgr;

function FocusMgr_Init() {
    FocusMgr = new function () {
        this.mCurFocusID = 0;
        this.mCurFocusWindowID = 0;
        this.mCurFocusElement = null;
        this.mOpenedWindow = false;
        this.mFocusStk = [];
        //etc
    }
}
4

2 に答える 2

2

このAvSetFocus()関数は次のオブジェクトを返します。

{
    n: {
        t: FocusMgr,
        f: FocusMgr.SetFocusToField,
        a: [d, b]
    }
}

オブジェクトには 1 つのプロパティがあり"n"、それ自体が別のオブジェクトを参照します。

    {
        t: FocusMgr,
        f: FocusMgr.SetFocusToField,
        a: [d, b]
    }

...これには 3 つのプロパティがあります。"t"(おそらく)さらに別のオブジェクトを"f"参照し、同じオブジェクトが参照するメソッドを参照します。これは、"t"を介してアクセスできるため少し冗長に見え、パラメーターとして渡された2つの値の配列を参照することになります。""t"a"AvSetFocus()

「この関数は実際に SetFocusToField を呼び出しますか?」

いいえ、そうではありません。次のように使用できます。

var avsf = AvSetFocus(x, y);
avsf.n.f();  // calls FocusMgr.SetFocusToField()

または、次のようにすることもできます。

AvSetFocus(x, y).n.f();

渡すパラメータがどうあるAvSetFocus()べきかについては、私にはわかりません。示されているコードからはわかりません。

于 2013-04-14T11:51:09.233 に答える
0

AVSetFocus が nobject を返すことを意味しますか (「フィールド」t、f、および a で構成される一時的な名前 n が付けられています。t はオブジェクト (のように見えます)、f はオブジェクト t の関数であり、 aは配列ですか?

{}オブジェクトリテラル表記です。新しいオブジェクトを作成します。はい、あなたは正しいです。

変数はメソッドへのf単なる参照ですが、実行されません。

次のようにして関数を呼び出すことができますn.f();

于 2013-04-14T11:48:16.897 に答える