【javascript】グローバルオブジェクト
制御が任意の実行コンテキストに入る前に生成される、一意的な グローバルオブジェクトが存在する。
(仕様書より)
そして
HTML 文書オブジェクトモデルにおけるグローバルオブジェクトの window プロパティは、グローバルオブジェクトそれ自身である。
(仕様書より)
というわけで、ブラウザで実行するjavascriptにおいては、よくグローバル変数って呼んでいるのは、windowオブジェクトのプロパティのこと。
だから、こういう書き方ができる。
var x = 3
alert(x) // 3
alert(window.x) // これも3
function b()
{
alert("bbbbb")
}
window.b() //ちゃんと定義されている。実行されて bbbbb という。
//ちなみにプロパティは[]で呼び出すこともできるので、これもあり
alert(window["x"])
window["b"]()
//これもあり
window["alert"]("global function")