* 即時関数 (function(){})() [#rf1dd967]
** 即時関数とは? [#a439aabf]
「関数定義」「関数呼び出し」を同時に行う。
(function foo(){ alert(1); })()
ここではfooという関数名で定義してるが、無名関数でも良い。
(function (){ alert(1); })()
** 即時関数のメリット1 グローバル変数を汚さない [#ieaae04f]
function foo(){ alert(1); }
var foo = 100;
alert(foo); // =>「100」数値のfooが関数のfooを上書きする
function bar(){ alert(1); }
alert(window.bar); // =>「"function bar(){ alert(1); }"」fooはグローバルオブジェクトwindowを汚している
(function baz(){ alert(1); })()
alert(window.baz); // => 「undefined」bazはundefinedでグローバルを汚してない