This (プログラミング)
プロトタイプベースオブジェクト指向言語である JavaScript では、関数はオブジェクトに属している(メソッドである)ことも、属さないでいる(ただの関数である)こともできる。したがって、thisが何を指しているかは、関数の呼び出し方によって異なっている。
多くの場面では、クラスベースオブジェクト指向言語の this と同じように使うことができる。たとえば、
のように関数(object.notify)をメソッドとして呼び出した場合、thisはobjectを指す。また、
のように new を付けて関数(Counter)をコンストラクタとして呼び出した場合、this は新しく生成されるオブジェクトを指す。
関数を単独で呼び出す場合は、thisはstrict-mode中であればundefinedであり、そうでなければグローバルオブジェクトを指すが、thisが何を指すかを個別に指定して呼び出すこともできる。(Function.prototype.apply) 。