2008年6月5日木曜日

JavaScript の無名関数に引数を与える

1. 無名関数は名前がないだけの普通の関数

JavaScript で、最初に

「何だ?この書き方は。」

と思ったのが、無名関数を定義し、すぐにその関数を実行する記述。

無名関数と言えば、 JavaScript ではブロックスコープを実現するために用いられる。

 

2. 無名関数の定義

無名関数を定義し、すぐにその関数を呼び出すには、以下のように記述する。

(function(){alert("hoge")})()

無名関数の中で変数を定義すれば、その変数のスコープは関数の中に限定される。そのため、無名関数をブロックと見なすことができる。

上記の無名関数に、引数を与える。

(function(str){alert(str)})("hoge")

引数を二つ与える場合は、

(function(a,b){alert(a+b)})("hoge","piyo")

 

3. 無名関数に引数を与える覚え方

無名関数を定義して、すぐにその関数を呼び出す書き方は一見覚えにくい。しかし、次のようにして頭に入れておくと、忘れることはない。

はじめに () を二つ並べる。

()()
  1. 一つ目の () を関数と見たてる。
  2. 二つ目の () は、その関数の呼出し。引数がある場合、ここに渡す。

次に、無名関数の定義の仕方を思い出す。名前のある関数から、名前を削除すれば、無名関数がの出来上がり。

function(){}

これを最初の () に入れたら、出来上がり。

(function(){})()

 

参考