1

_.bindAndにUnderscoreがあることに気付きまし_.bindAllた。いつどちらを使用するのか疑問に思っていましたか?バインドする必要があるものが複数ある場合、どれを使用しますか? this

4

1 に答える 1

3

よく似ていますが、まったく異なることをしています。_.bind()関数は、単一の関数をオブジェクトにバインドするためのものであり、オブジェクトの_.bindAll()関数値プロパティの一部またはすべてをオブジェクトにバインドするものです。

したがって_.bind()、関数を固定レシーバーで呼び出す必要がある場合や_.bindAll()、より「客観的な」コードで作業している場合に役立ちます。これは、関数であるプロパティを持つオブジェクトがあり、これらの関数が他の関数にアクセスできるように、オブジェクトをレシーバとして呼び出されることを期待 (要求) する場合です。

Underscore ドキュメントの例で、さらに説明しています。

最新の JavaScript ランタイム環境.bind()には Function プロトタイプのメソッドがあることに注意してください_.bind()

編集— 複数のオブジェクトにバインドされた関数を作成する必要があることについての質問については、答えは、 と のどちらも_.bind()それに_.bindAll()対処しないということです。何らかの方法で繰り返し、バインドされた関数を適切な方法で収集するだけです。

于 2012-09-01T15:08:58.943 に答える