javascriptの関数リテラル(っていうの?)が分かった気がした
function testFunc(str){ alert(str) } testFunc("こんにちはこんにちは")
関数を用意して、引数をつけて実行する、というのは普通のことです。でもjavascript界ではそういう書き方はレガシーだ、クールじゃない、アホ、氏ね、という扱いになるので、かっちょよく書かないといけません。いけなくないんだけど。
上と同じことを書いているのがこちら。
(function testFunc(){ alert(str) })("こんにちはこんにちは")
ポイントは2つくらいあって、まず function(){} を (function(){})と、かっこで包んでいること。これによって関数っぽく見えるtestFuncが関数リテラルという、まぁ、文章か何かになるらしいです。
そして引数は最後の("こんにちはこんにちは")ですが、関数リテラル野郎はここで引数をつけているわけですね。
さらにこれは、明示的に testFunc(); などと書かなくても、そのまま実行されちゃいます。だから関数だけ用意しておいて後で呼び出すぜ! っていうときは普通に関数を書きます。
よく分かってないけどこれの利点があったら教えてください。今っぽい書き方、っていうだけじゃないよね。