10

bind()私はjavascriptの関数に関するいくつかのドキュメントを読んでいました。

例の1つは、次のように始まります。

function list() {
  return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]

//  Create a function with a preset leading argument
var leadingZeroList = list.bind(undefined, 37);

var list2 = leadingZeroList(); // [37]

だから私の質問は:

ここに渡す(undefined, 37)とはどういう意味ですか?bind()

4

2 に答える 2

16

thisこれは、結果のバインドされた関数で何も参照したくないことを意味します。つまり、バインドされた関数を呼び出すと、がにthisなることが保証されますundefined。もちろん、それを行う理由はコードによって異なります。多くの関数は使用しないthisので、整頓する方法です。

非厳密モードでは、ランタイムが(ブラウザー内の)グローバルオブジェクトをに置き換える場合があること注意してください。ただし、その動作を規定する仕様は見つかりません。厳密モードでは、そのような置換は実行されません。windowundefined

于 2013-01-17T15:45:27.113 に答える
3

bind関数内の値を指定する最初のパラメーターthis。オブジェクトに作用する「メソッド」に変換するために使用できます。ただし、合格した場合、undefinedそれは機能のままであることを意味します。したがって、上記の例では違いはありません。

于 2013-01-17T15:46:15.573 に答える