以下のコードを見てください。

<script type="text/javascript">
// トップレベルのコード中でthisを使用する
alert(this);
function init() {
  // トップレベルに定義された関数内でthisを使用する
  alert(this);
}
</script>

 このコードで使われている二つのalert()は、どちらも[object Window]と表示されます。つまり、ブラウザのwindowオブジェクトですね。

 この事実を正確に文章で表すなら、「トップレベルのプログラムコード/関数内でthisを利用すると、『グローバルオブジェクト』を指す」と言うことになります。

 グローバルオブジェクトと言うのは、簡単に言うと「グローバルな変数/関数の置き場所となるオブジェクト」です。ブラウザ上のJavaScriptにおいてはwindowオブジェクトになりますし、その他の実行環境では違うものになることがあります。

http://builder.japan.zdnet.com/sp/javascript-kickstart-2007/story/0,3800083428,20371112,00.htm