読者です 読者をやめる 読者になる 読者になる

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

JavaScript クロージャ

(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という引数を渡して実行しているから両方出ると。

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