アロー関数での「this」のバインディング
ES6 で導入されたアロー関数は、その簡潔な構文のため人気が高まっています。ただし、アロー関数の制限の 1 つは、「this」を再バインドできないことです。通常の関数とは異なり、アロー関数は定義時に周囲のコンテキストから 'this' バインディングを継承します。
この例では、アロー関数:
var f = () => console.log(this);
は、グローバルな範囲。したがって、「this」は、関数をバインドしようとしている「o」オブジェクトではなく、グローバル ウィンドウ オブジェクトを指します。
var fBound = f.bind(o); fBound(); // Logs the window object
この問題を解決するには、アロー関数を使用しないでください。代わりに、通常の関数を定義します:
var f = function() { console.log(this); }.bind(o); f(); // Logs the 'o' object
この場合、通常の関数が使用されているため、「this」バインディングは「o」オブジェクトに正しく設定され、バインディングの再割り当てが可能です。
以上がなぜ `bind()` はアロー関数で機能しないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。