argumentsとは関数に渡された引数に対応するオブジェクト。関数に渡された複数の引数を取得でき、可変長引数の関数を扱うことが出来る。
arguments.lengthが渡された引数の数を表し、arguments[i]でi番目の引数を参照することができる。
var test = function() { document.write(arguments.length); document.write("<br/>"); var max = arguments.length; for(var i=0; i<max; ++i) { document.write(arguments[i]); document.write("<br/>"); } }; test(123,456,789); test("abc",456,1.5,"def"); test();
これの実行結果は次のとおり。
3 123 456 789 4 abc 456 1.5 def 0
これは配列のように簡単に参照できるので便利。C言語で可変長引数の関数を書こうとすると、va_listとか使わなくてはならずちょっと面倒。C言語にも似たようなものがあったら良かったのに。