JavaScript のイディオムを理解する: var self = this
JavaScript では、特定のシナリオで 'var self = this' というイディオムが発生することがあります。 。その目的を理解するために、WebKit HTML 5 SQL Storage Notes デモの例を考えてみましょう。
function Note() { var self = this; // ... }
Maintaining Context
この例では、'self' はネストされた関数内でコンテキストが変更された場合でも、元の「this」コンテキストへの参照を保持するために使用されます。イベント ハンドラーは、特にクロージャでこの手法をよく使用します。
内部関数が呼び出されたときに、'this' を 'self' に代入することで、元の 'this' コンテキストにアクセスできます。これはインスタンスにアクセスするために重要です。プロパティとメソッド。
別の名前
名前に注意してください。 「自分自身」というのは単なる慣習にすぎません。 「that」のような代替名も同様に有効です。重要なのは、元の「this」参照を維持する変数を確立することです。
関数スコープ
コンテキスト内で宣言された関数は、そのスコープで定義された変数および関数にアクセスできます。または外側のスコープ内で。この原則は、ネストされた関数とクロージャにも当てはまります。
例
次のイベント コールバックを考えてみましょう。
function MyConstructor(options) { let that = this; // ... document.addEventListener('click', (event) => { alert(that.someprop); }); }
この例では、'それは、「MyConstructor」のコンテキストを保持します。クリック イベント ハンドラーは、'MyConstructor' で作成されたオブジェクトのインスタンス プロパティ 'someprop' にアクセスできるようになりました。
以上がJavaScript で `var self = this` を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。