this
JavaScript は自動的に各関数/メソッドに parameterを割り当て、this
それを含むオブジェクトにバインドされることを理解しています。
メソッドは、オブジェクトのプロパティとして格納される関数です。したがって、メソッドでthis
は、それを含むオブジェクトから値を変更または取得するために使用できます。ただし、そのメソッドがオブジェクトのプロパティとしてではなく関数として呼び出された場合、オブジェクトでthis
はなくグローバルにバインドされます。
回避策は、次を割り当てることです。
var that = this;
メソッド内で、内部関数がthis
変数を介してアクセスできるようにしますthat
。
私の質問は: なぜこの回避策が必要なのですか? 常にメソッドを使用することはできませんか? 完全に適切なメソッドを内部関数として呼び出すのに、別の変数を作成して、代わりにメソッドとして呼び出された場合にアクセスできるようにする必要があるのはなぜですか?
ここで重要な何かが欠けているに違いありません。ダム質問タグがあれば、それを使用します。(誰か作ってくれませんか?)