libro
www.tuyano.com
初心者のためのJavaScriptプログラミング入門

JavaScriptのオブジェクト指向 (1/7)

作成:2010-04-01 11:23
更新:2010-05-11 17:07

■関数リテラル

JavaScriptのオブジェクト指向というものを理解する場合、そのキーとなるのは「配列」です。配列というのは、さまざまな値を保管することのできる特別な値、でしたね? 割と多くのプログラミング言語は、配列は値の種類が決まっていて、すべて同じ種類の値しか保管できなかったりしますが、JavaScriptの配列はもっと自由です。1つの配列の中に、どんな値でも保管できるのです。数字も、テキストも、関数も。

「え、関数?」――そうです。前にちらっと触れましたが、JavaScriptでは、関数も値として扱うことができるのです。自分で関数を定義し、それを値として変数に保管したりできるんですよ。

では、配列の前に、この「関数リテラル」(←関数を値=リテラルとして扱うもの)というのを使ってみましょう。下のリストにサンプルを上げておきます。これは、前回、関数定義のところで作ったサンプルを、関数リテラルを使った形に書き直したものです。

関数を値(リテラル)として変数などに設定する場合には、このような形で関数を作成します。
変数 = function(…引数…){
    ……関数の内容……
}
普通、関数の定義をするときには、functionの後に関数名を書きますが、関数リテラルでは関数名は不要です。

こうして関数リテラルを代入した変数は、そこに入れてある関数として扱うことができます。例えば、下のサンプルでは、
var func = function(n){…略…}
このような形で関数リテラルを変数funcに代入していますね。この変数funcは、そのままfuncと書いて使えば、中に入っている関数リテラルを取り出したりして、変数として使うことができます。が、変数名の後に()をつけて書くと、変数に代入された関数を呼び出して利用することができるのです。例えばここでは、
var res = func(num);
このようにして、変数funcに入っている関数を呼び出して結果をresに入れています。こんな具合に、関数リテラルを使えば、関数を値として自由に扱い、なおかつ関数としても実行できるのです。

※プログラムリストが表示されない場合

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プログラミング入門」に戻る