関数
最近あまり、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が表示されます。