ルールはたったひとつだけ
- staticでないメンバー関数(コンストラクタ含む)のなかで
this
はそのメンバー関数を呼び出した時のレシーバとなる
関数内関数定義のなかだろうとイベントハンドラの中だろうと常にメンバー関数の this
は一定です。static member functionのなかではthisは使えません。JS的にいうと、メソッドの先頭で var that = this;
としてその後すべての this
ではなく that
を使うイメージ、といえばわかりやすいでしょうか。bind/apply/callといったものもないので this
がそれ以外の何かになることはありません。
簡単でしょ?