いまさらだけど JavaScript
わかりやすく説明してるブログとか結構あるんで、そこらへんを見るとJSがわかったような気がしてしまうんだけど、実際のところ自分の中に落とし込めないんで基礎からちゃんとやる。
キバヤシ口調で。
JSのグローバル変数は window オブジェクトが所持してるんだよ!
何か変数を使用するときは以下のようにする*1。
var a = 100;
または、以下のように。
a = 100;
こんな感じで宣言したあとで、
alret(window.a)
こうすると 100 が表示される。
FireBugの人はコンソールで試してみるといいよ。IEの人はアドレスバーに↓みたいな感じで入力してみよう。
javascript:var a = 100; alert(window.a);
関数も同じノリで動かせる。
function func() { alert('function') }
とか、
var func = function() { alert('function') }
上記のように宣言しておいて、↓のように実行できる。
window.func();
IEの人は例の如くアドレスバーに↓みたいな感じで入力してみよう。
javascript:var func = function(){alert('function')}; window.func();
ところで window ってなんなの
window は 一番トップレベルのオブジェクト。alert とか confirm メソッドは window オブジェクトが持ってるメソッドなんだよ!
それ以上のことはよくわかんね(´Д`)
window がオブジェクトということは
さっき書いたグローバルな変数とか関数っていうのは、 window オブジェクトのプロパティ/メソッドとして宣言しているということなんだよ!
だから
window.a = 100; alert(window.a);
とか
window.func = function(){ alert('function') } window.func();
とやっても同等なんだよ!*3
つまり、グローバルっつっても変数や関数自身がトップレベルにあるのではなくて、 window っていうでっかいオブジェクト(受け皿)があるっていう話なんだよ!(ナンダッテー)