ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

arguments

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言語にも似たようなものがあったら良かったのに。