JavaScriptの「this」キーワードとは?仕組みと使い方を実例で解説
JavaScriptにおける「this」キーワードは、現在実行中のコードが属するオブジェクト(主体)を参照するための特別なキーワードです。つまり、「this」はそのコードがどのオブジェクトの文脈で実行されているかを示す参照として機能します。
「this」の値は固定ではなく、関数がどのように呼び出されたか(実行コンテキスト)によって変化する点が重要です。最も一般的なケースでは、オブジェクトのメソッド内で使用された場合、「this」はそのメソッドを所有するオブジェクト自身を指します。
基本例:オブジェクトのメソッド内での「this」
以下の例では、オブジェクト「college」のメソッド「details」の中で「this.subject」を使用しています。
<script>
var college = {
subject: "Maths",
lecturer: "Amy",
details: function () {
document.write(this.subject);
}
}
</script>
このコードの解説
この例では、オブジェクト「college」は次のプロパティとメソッドを持っています。
- subject:科目名("Maths")を格納するプロパティ
- lecturer:講師名("Amy")を格納するプロパティ
- details:「this.subject」を出力するメソッド
メソッド「details」内の「this」は、そのメソッドが属しているオブジェクト、すなわち「college」を参照します。したがって、「this.subject」は「college.subject」と同じ意味になり、college.details() を呼び出すと "Maths" が出力されます。
「this」の挙動のポイント
- オブジェクトのメソッドとして呼び出された場合:「this」はそのオブジェクトを指します。
- 単独の関数として呼び出された場合:非厳格モードではグローバルオブジェクト(ブラウザでは window)を指します。
- 厳格モード("use strict")では:単独呼び出し時の「this」は undefined になります。
このように「this」は呼び出し方によって参照先が変わるため、JavaScriptを扱う上で非常に重要な概念です。まずは「メソッド内では自分の所属するオブジェクトを指す」という基本をしっかり押さえておきましょう。
-
JavaScriptのyield*式とは?ジェネレーターの委譲方法をサンプルコードで解説
yield* 式は、別のジェネレーター関数やイテラブル(反復可能)オブジェクトを参照し、その値の生成処理を委譲するために使用される構文です。 通常の yield が単一の値を返すのに対し、yield* は指定したジェネレーターや配列などのイテラブルが持つすべての値を、あたかもその場所に直接記述したかのように順番に取り出します。これにより、複数のジェネレーターを連結したり、再帰的なデータ構造を簡潔に走査したりすることが可能になります。 yield*式の基本的な仕組み yield* の後にジェネレーターオブジェクトやイテラブルを指定すると、その要素がすべて順に生成されます。委譲先のジェネレーター
-
YouTubeアルゴリズムの仕組みを徹底解説!おすすめ欄と検索結果に表示される方法
YouTubeのおすすめ欄は、多くのユーザーが新しい動画を探すときに最初に目を向ける場所です。ここに表示される動画は、一人ひとりの視聴傾向に合わせてカスタマイズされており、ユーザーがクリックしたくなるような動画が並んでいます。では、これらの動画は一体どのように選ばれているのでしょうか。 この仕組みは一般的に「YouTubeアルゴリズム」と呼ばれています。これは、どの動画をユーザーのおすすめ欄に表示するかを計算するシステムであり、検索結果にも大きな影響を与えます。そのため、より多くのオーディエンスへリーチしたいクリエイターにとって、アルゴリズムの仕組みを理解することは非常に価値のあることだと言