JavaScriptのthis

jsのthisは、ある関数が呼び出されたときに、その関数を格納していたObjectを指す。

js how does "this" work?

 

関数を単にfunc();という形で単体で実行した場合、thisにはwindowが入る。

f:id:bambinya:20150729190027p:plain

 

new演算子のthis

jsのnewは任意の関数と一緒に呼び出すことができる。

var x = new func();

上の例では、まずnewで新しい空のオブジェクト{}が生成され、次に関数func()が呼び出される。このとき関数func内のthisには新しく生成された空のオブジェクトが渡され、関数実行後、生成されたオブジェクトがnewの実行結果として変数xに代入される。