読み方 : ディスキーワード

thisキーワード【this keyword】

概要

thisキーワードとは、オブジェクト指向プログラミング言語において、メソッドコンストラクタの内部から「現在のオブジェクト自身」を参照するために使われる特別なキーワード。JavaJavaScript、C#、C++言語など多くのプログラミング言語で採用されている。
thisキーワードのイメージ画像

オブジェクト指向プログラミングでは、クラスから生成されたオブジェクトインスタンス)がそれぞれ独自のデータフィールド)とそれを操作する手続き(メソッド)を持つ。メソッドの内部ではそのメソッドを呼び出したオブジェクト自身のフィールドや他のメソッドにアクセスする必要が生じるが、クラスを定義する時点ではどのインスタンスからメソッドが呼ばれるかは決まっていない。

thisキーワードはこの問題を解決するための仕組みであり、実行時に「このメソッドを呼び出したインスタンス自身」を動的に指し示す参照として機能する。例えば、Javaではコンストラクタの引数名とフィールド名が同じ場合に「this.myProp = myProp」のように記述することで、左辺がインスタンスフィールドであることを明示し、右辺の引数と区別する用途でよく使われる。また「this()」という形でコンストラクタから別のコンストラクタを呼び出す用途にも使われる。

JavaScriptではthisの挙動が他の言語と異なり、呼び出し方によってthisが指し示すオブジェクトが変化する。通常の関数呼び出し、メソッド呼び出し、コンストラクタ呼び出し、イベントハンドラなどの文脈によってthisの参照先が異なるため、JavaScript特有のつまずきポイントとして初学者が混乱しやすい。アロー関数ではthisが定義時のスコープに固定される仕様となっている点も混乱を招きやすいとされる。なお、RubyPythonでは同様の役割を持つキーワードとして「self」が使われている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。