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

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

Patricia Arquette
リリース: 2024-12-13 17:56:10
オリジナル
746 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート