ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で `var self = this` を使用する理由

JavaScript で `var self = this` を使用する理由

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 17:56:10747ブラウズ

Why Use `var self = this` in JavaScript?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。