• ベストアンサー

無名関数がいまいち分かりません!

 コンピュータのプログラムに”無名関数”がありますが、自分で勝手に好きな芸能人の名前等を 英数字にして、入力しても動きました^^、 ”無名関数”があるということは”無名関数”に属さない関数もあると思います。  ”無名関数”に対して逆の関数とはどんな関数のことをいうのでしょうか!    質問内容が、”ばかげている”と思われる方は無視してください    よろしくお願いします。  

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

無名関数の逆、それは有名関数です。なんのことはない、名前のある関数です。 ここで考え方を変えて、 1、なぜ無名関数が必要なのか? 2、有名関数の欠点はなにか? を主点に考えて見てください。 関数は、呼ばれるために名前が付いていなければなりません。 もし、沢山の名前(関数)があったら探すのに面倒になりませんか(主に人が)? 例えば、同じような名前を付けたいのだけれど、どうしよう? そうだ! setValue1(), setValue2(), setvalue(), SetValue とかにしよう! そうすると、作った本人さえ、なんの目的で作ったのかわからなくなります。 ましてや、複数のプログラマが分割して共同で書いていた場合、名前の衝突は起こりえます。 これを「名前空間が汚れる」といったっけか? 一度しか呼ばれない関数に、わざわざ名前をつけるのも・・・ そ言うときは、 (function () {  alert (123); }) (); とすれば、名前を付けずに実行できます。 例えば、1度しか呼ばれない関数だけど、他の関数(これも名前空間を汚さない)を何度も 呼び出す関数を書かなければならないとき。 (function () {  function a (b) {   return b + b;  }    function c (d) {   return d * d;  }    alert (a(1)+c(2)); })(); でもこれは、無名関数の中で、名前を汚しています。この中の部分を共同作業で作っていたら? なやみはつきませんね。

javascriptphp
質問者

お礼

ご回答ありがとうございます。 よ読んでみます。

関連するQ&A