ホームページ > 記事 > ウェブフロントエンド > JavaScript プロトタイプ関数で「this」のコンテキストを保持するにはどうすればよいでしょうか?
問題:
プロトタイプ JavaScript で関数を定義するときプロトタイプ内ではスコープが変更され、「this」の値がクラスのインスタンスを参照しなくなります。このため、元のオブジェクトのプロパティやメソッドにアクセスすることが困難になる可能性があります。
解決策:bind() メソッドを使用する
開発者は、bind() メソッドを使用して次のことを行うことができます。プロトタイプ関数内で「this」のコンテキストを保持します。最初の引数として指定されたコンテキスト バインドを持つ新しい関数を返しますが、残りの引数は元の関数に渡されます。
この例では、bind() メソッドを使用してコンテキストを保持しています。
複数のプロトタイプ関数を使用した例:
bind() を使用すると、明示的に各プロトタイプ関数内の「this」への参照。例:
doSomething の定義で binding() を使用すると、「this」のコンテキストがクラスのすべてのインスタンスに対して自動的に保存されます。
グローバルの回避変数:
グローバル変数を使用して「this」への参照を保持することは、グローバル名前空間を汚染し、クラスの複数のインスタンスが相互に干渉せずに作成されなくなるため、推奨されません。 binding() メソッドは、より効率的でクリーンなソリューションを提供します。
結論
bind() メソッドは、内部の「this」のコンテキストを保持する強力な方法を提供します。プロトタイプ関数を使用できるため、手動での参照やグローバル変数の必要がなくなります。このアプローチにより、プロトタイプの JavaScript アプリケーションのコードの可読性、保守性、柔軟性が向上します。
以上がJavaScript プロトタイプ関数で「this」のコンテキストを保持するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。