BACK

HOOPSII MOBILE

HOME

28冊目 【JavaScript】[ECMAScript] argumentsオブジェクト

JavaScriptの引数にはちょっとした秘密があります。
引数の数が指定した数と合わなくてもエラーにならず、プログラムが実行されます。
これは、引数にはargumentsオブジェクトというものに値がわたっているからなのです。

目次

[1] argumentsオブジェクトとは

関数の引数はargumentsオブジェクトにデータが格納されています。
argumentsオブジェクトは関数内部でのみ使用できる特殊なオブジェクトです。

function output(){
	var i = 0;
	document.writeln("受け取った引数の数="+arguments.length);
	for(i = 0; i < arguments.length; i++){
		document.writeln(arguments[i]);
	}
}

output(10,20,30,40);

「arguments.length」の値を参照すると渡された引数の数が取得できます。
正確にはargumentsオブジェクトの要素数が取得できます。
引数として定義した値は左からargumentsオブジェクトに格納されます。

[2] 再帰関数専用の機能

JavaScriptでは、再帰関数の方法に、argumentsオブジェクトのcalleeというものがあります。
calleeという機能があるので無名関数において再帰関数を実行することが可能になります。

function num_factorial(num){
	if(num != 0) {
		return num * arguments.callee(num-1)
	}
	return 1;
}

document.writeln(num_factorial(4));

[3] 更新履歴

日付 詳細
2011/08/16 コンテンツ公開

Copyright (C) 2011 ほぷしぃ. All Rights Reserved.