せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【JavaScript 】thisのコンテキスト

 
■topic summary
study about what "this" means in JavaScript.

 

関数渡しではthisが変化する

var hoge={
 x:"jjj",
 f:function(){alert(this.x)}
}
var huga = hoge.f;
huga()

■実行結果

undefined

 

無名関数でラップ

無名関数でラップすることによってthisコンテキストが保存できる

var hoge={
 x:"jjj",
 f:function(){alert(this.x)}
}
var huga = function(){hoge.f()};
huga()

■実行結果

jjj

 
関数実行時のthisはレシーバーになるので、
それを利用している。