関数

最近あまり、javascriptを実際に使う。ってことが少ないから
新しく参考書を買い、基礎からもう一回やり直そうと思いました。http://www.amazon.co.jp/JavaScript-
で、とりあえず、今日は関数について書いてみよう。

javascriptでは、他の言語と違い、関数も値として扱えます。
なので、オブジェクトのプロパティとして、関数を代入する事もできます。
たとえば、
また、関数リテラルというものが、javascriptにはあります。
たとえば、
以下のような関数を定義するのが、一般の関数定義の方法です。

function square(x) { return x*x; }

が、上のコードを以下のように書く事もできます。

var square = function(x) { return x*x; }

上の様に、定義した関数を「ラムダ関数」と呼ぶらしいのです。
参考書とかには、高度なスクリプトを見ると、関数リテラルの方が便利である。という事がわかるってあります。
確かに、上のような定義方法は、色々なライブラリで遊び、ソースを見てみると、よく使われているのを見ますが、
まだ、利点が全然わかりませんね。早く一般に配布されているコードがちょっとでも理解できるようなレベルになりたいものです。
他にもjavascriptには、以下の様な関数定義方法があります。

var square = new Function("x", "return x*x; ) ;

ちなみに上の関数

square

平方根を返却する関数で、どの様に定義しても以下の様に使えます。

alert( square(10) ) ;

上のコードをscriptタグ内に書けば、10*10の値、つまり100が表示されます。