• 締切済み

JavaScript thisとvarの違い

以下のスクリプトをRhino 1.7 で実行しました。 var a = 1; this.a = 2; function MyFunc() { var a = 3; this.a = 4; print(a); } var func = new MyFunc(); print(a); print(this.a); print(func.a); 結果は以下の通りです。 3 2 2 4 1行目と4行目の結果が違います。 トップレベル(2と3行目)ではthisとvarの値が同じなのに1と4行目の値が違うのは、どのような理由でしょうか? JavaScriptの動作から含めて、教えていただければ幸いです。 よろしくお願いします。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> JavaScriptの動作から含めて ということであれば、ECMAScriptの仕様をもとに解説しているWebページなどを探してみては。 http://www.google.co.jp/search?q=context+ECMAScript&hl=ja&lr=lang_ja http://www.google.co.jp/search?q=ECMAScript+scope+chain+ECMAScript&hl=ja&lr=lang_ja

zamegazumi
質問者

補足

ありがとうございます。 自力解決しました。 varがついたものは、関数の中の変数。 thisがついたものは関数によって作成されたオブジェクトの変数。 以上です。

関連するQ&A

専門家に質問してみよう