プロが教えるわが家の防犯対策術!

以下のスクリプトを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の動作から含めて、教えていただければ幸いです。
よろしくお願いします。

A 回答 (1件)

> JavaScriptの動作から含めて



ということであれば、ECMAScriptの仕様をもとに解説しているWebページなどを探してみては。
http://www.google.co.jp/search?q=context+ECMAScr …
http://www.google.co.jp/search?q=ECMAScript+scop …

この回答への補足

ありがとうございます。

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

補足日時:2013/07/24 21:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!