0
A = {
    f1: function() {
        return {
            a: function(){ alert('sss'); }
        }
    }
}

A.f1().a();

なぜこのように使われるのですか?

a()メソッドがA.f1()にバインドされているのはなぜですか?

4

2 に答える 2

1

のメンバー関数f1は、メンバーが関数に設定されAたオブジェクトリテラルを返しますa。また、次のように書くこともできます。

A = {
   f1: {
        a: function() { alert('sss'); }
    }
}

A.f1.a();

この場合、オブジェクトを返すことは個人的な好みである可能性があります。これら2つの例の間に機能的な違いはありません。

于 2012-09-05T02:29:15.450 に答える
0

以下のようにすると:

var x = A.f1();

xに到達するのは、f1関数によって返されるオブジェクトです。これは:

{
   a: function(){ alert('sss'); }
}

これで、オブジェクト'x'に関数a()が追加されました。その関数を次のように呼び出すことができます。

x.a();

これは非常に似ています:

A.f1().a();
于 2012-09-05T03:54:24.710 に答える