「JavaScript の決定版ガイド」 には、Array.prototype.map
:
なぜ f(a[i], i, a)
を直接使用する代わりに call(null)
を使用するのでしょうか?このように、これは世界情勢を示しています
PHP中文网2017-05-19 10:46:24
ここで実装されたマップはこの形式、つまり 2 つのパラメーターでのみ呼び出すことができることがわかります。
MDN で提供される関数プロトタイプをもう一度見てみましょう。
const new_array = arr.map(callback[, thisArg])callback は f と呼ばれるものなので、最後の this はオプションであり、本で提供される関数はこの値をまったく考慮しません。この値が渡されない場合、
thisArg パラメーターが省略されている場合、または値がassign null または未定義の場合、これはグローバル オブジェクトを指します。 さらに、関数オブジェクト呼び出しメソッドを使用する場合、
この関数が非厳密モードの場合、null および未定義として指定された this 値は自動的にグローバル オブジェクト (ブラウザーのウィンドウ オブジェクト) を指し、this の値は元の値 (数値、文字列、ブール値) 元の値を指す自動ラッパー オブジェクト。一言で言えば、マップ関数のプロパティを完全にシミュレートするため〜