(function(){..})()の確認

(function(var){..............})(var) と function(var){............} の違い。つまり、クロージャ。 - ・・・tohokuaikiのチラシの裏(それ図解できたらいいなぁ)を見てみて。

<script>
hoge=(function(v){alert(v)})("aa");
alert(hoge);
</script>

ってやると、undefinedになる。

これはカッコの中でreturnしてないからってことですよね。
何も返すものないからhogeは何もなしと。

<script>
hoge=(function(v){alert(v)};return v)("aa");
alert(hoge);
</script>

なら、ちゃんとaaが出る。

<script>
(function(v){alert(v)}("aa"));
hoge=function(v){alert(v)};
hoge("bb");
</script>

ってやった場合、ローディングが終わったら alert("aa"); alert("bb") が実行される。

こっちはhogeに関数が入り、その後hogeにbbという引数を渡して実行しているから両方出ると。

後半読んでも前半の違いについてよくわからなかったのでまとめてみた。