0

JavaScript Ninjaから取得すると、次のようになります。

function bind(context, name) {
    return function() {
        return context[name].apply(context, arguments);
    };
}

上記のコードとの違いは何ですか?

function bind(context, name) {
    return context[name].apply(context, arguments);
}

なぜ追加の返品が必要なのか混乱していますか?

ありがとう

4

2 に答える 2

4

1つ目は関数を返します。

2番目は呼び出しの結果を返しますcontext[name]

これにより、コンテキストを維持しながら(後で呼び出すことができるように)関数をどこかに渡すことができます(したがって、の値thisは必要なものになります)。

于 2012-10-16T14:29:14.587 に答える
2

それらが完全に異なるという事実は別として?1つは関数呼び出しを含むクロージャを返し、もう1つは関数を呼び出してその戻り値を返します。

于 2012-10-16T14:28:55.113 に答える