JavaScriptのthisについて自分なりの解釈 その2
前記事
JavaScriptのthisについて自分なりの解釈 - ひよっこPGの技術メモ・英語・ギターのブログ。
thisは、呼び出される状況によって代入されている値が異なるみたいです。
一つ分かったパターンがあるので説明してみます。
コンストラクタ関数内での thisは 生成されたオブジェクトが代入されている。
// コンストラクタ関数 var Test = function(param1){ this.hoge = param1; } // Testオブジェクトを生成して、test変数に代入 var test = new Test("hogeマンです。"); alert("test.hoge : "+test.hoge);
new Test("hogeマンです。")を実行すると下記のような順番で処理が流れます。
1. 新しいオブジェクトが作られる。
2. this に1で作ったオブジェクトを代入する。
3. function内を実行する。
呼び出し元のオブジェクトがないので、新規にオブジェクトを作成してthisに代入しているみたいですね。
他サイトでの説明と関連づけ
JavaScriptの「this」は「4種類」?? - Qiita [キータ]
このサイトでの説明では
コンストラクタ呼び出しパターン
と同じことを説明しています。
new をつけた場合、thisは新規に作成されたオブジェクトを表しますが
new をつけなかった場合はグローバルオブジェクトを指すようです。newのつけ忘れには気をつけましょう。
他のパターンもその3で説明してみます。
JavaScriptのthisについて自分なりの解釈 その3 - ひよっこPGの技術メモ・英語・ギターのブログ。