JavaScriptのオブジェクト指向 (1/7)
作成:2010-04-01 11:23
更新:2010-05-11 17:07
更新:2010-05-11 17:07
■関数リテラル
JavaScriptのオブジェクト指向というものを理解する場合、そのキーとなるのは「配列」です。配列というのは、さまざまな値を保管することのできる特別な値、でしたね? 割と多くのプログラミング言語は、配列は値の種類が決まっていて、すべて同じ種類の値しか保管できなかったりしますが、JavaScriptの配列はもっと自由です。1つの配列の中に、どんな値でも保管できるのです。数字も、テキストも、関数も。
「え、関数?」――そうです。前にちらっと触れましたが、JavaScriptでは、関数も値として扱うことができるのです。自分で関数を定義し、それを値として変数に保管したりできるんですよ。
では、配列の前に、この「関数リテラル」(←関数を値=リテラルとして扱うもの)というのを使ってみましょう。下のリストにサンプルを上げておきます。これは、前回、関数定義のところで作ったサンプルを、関数リテラルを使った形に書き直したものです。
関数を値(リテラル)として変数などに設定する場合には、このような形で関数を作成します。
こうして関数リテラルを代入した変数は、そこに入れてある関数として扱うことができます。例えば、下のサンプルでは、
「え、関数?」――そうです。前にちらっと触れましたが、JavaScriptでは、関数も値として扱うことができるのです。自分で関数を定義し、それを値として変数に保管したりできるんですよ。
では、配列の前に、この「関数リテラル」(←関数を値=リテラルとして扱うもの)というのを使ってみましょう。下のリストにサンプルを上げておきます。これは、前回、関数定義のところで作ったサンプルを、関数リテラルを使った形に書き直したものです。
関数を値(リテラル)として変数などに設定する場合には、このような形で関数を作成します。
変数 = function(…引数…){普通、関数の定義をするときには、functionの後に関数名を書きますが、関数リテラルでは関数名は不要です。
……関数の内容……
}
こうして関数リテラルを代入した変数は、そこに入れてある関数として扱うことができます。例えば、下のサンプルでは、
var func = function(n){…略…}このような形で関数リテラルを変数funcに代入していますね。この変数funcは、そのままfuncと書いて使えば、中に入っている関数リテラルを取り出したりして、変数として使うことができます。が、変数名の後に()をつけて書くと、変数に代入された関数を呼び出して利用することができるのです。例えばここでは、
var res = func(num);このようにして、変数funcに入っている関数を呼び出して結果をresに入れています。こんな具合に、関数リテラルを使えば、関数を値として自由に扱い、なおかつ関数としても実行できるのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<html> <head> <script type="text/javascript"> <!-- var func = function(n){ var total = 0; for(var i = 0;i <= n;i++) total += i; return total; } var num = prompt("数字を入力:"); var res = func(num); alert(res); //--> </script> </head> <body> <H1>TEST.</H1> </body> </html>
※関連コンテンツ
「初心者のためのJavaScriptプログラミング入門」に戻る