読み方 : ディスキーワード
thisキーワード【this keyword】
概要
thisキーワードとは、オブジェクト指向プログラミング言語において、メソッドやコンストラクタの内部から「現在のオブジェクト自身」を参照するために使われる特別なキーワード。JavaやJavaScript、C#、C++言語など多くのプログラミング言語で採用されている。

オブジェクト指向プログラミングでは、クラスから生成されたオブジェクト(インスタンス)がそれぞれ独自のデータ(フィールド)とそれを操作する手続き(メソッド)を持つ。メソッドの内部ではそのメソッドを呼び出したオブジェクト自身のフィールドや他のメソッドにアクセスする必要が生じるが、クラスを定義する時点ではどのインスタンスからメソッドが呼ばれるかは決まっていない。
thisキーワードはこの問題を解決するための仕組みであり、実行時に「このメソッドを呼び出したインスタンス自身」を動的に指し示す参照として機能する。例えば、Javaではコンストラクタの引数名とフィールド名が同じ場合に「this.myProp = myProp」のように記述することで、左辺がインスタンスのフィールドであることを明示し、右辺の引数と区別する用途でよく使われる。また「this()」という形でコンストラクタから別のコンストラクタを呼び出す用途にも使われる。
JavaScriptではthisの挙動が他の言語と異なり、呼び出し方によってthisが指し示すオブジェクトが変化する。通常の関数呼び出し、メソッド呼び出し、コンストラクタ呼び出し、イベントハンドラなどの文脈によってthisの参照先が異なるため、JavaScript特有のつまずきポイントとして初学者が混乱しやすい。アロー関数ではthisが定義時のスコープに固定される仕様となっている点も混乱を招きやすいとされる。なお、RubyやPythonでは同様の役割を持つキーワードとして「self」が使われている。