業務備忘録

備忘録です

JavaScriptのthisまとめ

2023-06-27 22:23:23 | 日記
  1. グローバルコンテキスト: グローバルスコープ(最上位のスコープ)でのthisは、通常はグローバルオブジェクト(ブラウザ環境ではwindowオブジェクト、Node.js環境ではglobalオブジェクト)を指す。

  2. 関数コンテキスト: 関数内でのthisは、関数が呼び出された方法によって異なる値を持つ。

    • 通常の関数呼び出し: 通常の関数呼び出しでは、thisはグローバルオブジェクト(ブラウザ環境ではwindowオブジェクト、Node.js環境ではglobalオブジェクト)を指す。ただし、厳格モード ("use strict") で関数が実行されている場合、thisundefinedになる。

    • メソッド呼び出し: オブジェクトのメソッドとして関数が呼び出された場合、thisはそのメソッドを呼び出したオブジェクト自体を指す。

    • コンストラクタ呼び出し: コンストラクタ関数からオブジェクトを生成する際、thisは新しく生成されたオブジェクトを指す。

    • callapply メソッドの使用: callapply メソッドを使用して関数を呼び出す場合、明示的に指定したオブジェクトがthisとなる。

  3. アロー関数: アロー関数内のthisは、通常の関数とは異なる挙動を示す。アロー関数内のthisは、関数が定義された時点での外部スコープのthisをキャプチャし、関数内でその値を保持する。そのため、アロー関数内のthisは実行コンテキストによらず一定の値を持つ。