[ Javascript ] 可変長引数を取得する ( arguments.length / function.length )

Pocket

Javascript では、関数に定義したパラメータ以上のパラメータの受け渡しを行うことができます。賛否両論あるとは思いますがそのような記述を行うことができます。

スポンサーリンク


可変長パラメータのサンプル

可変長パラメータの記述例です。詳細はサンプル内のコメントを参照ください。

function func(p1, p2)
{
    /*
     * arguments.length で実際に渡された引数の個数を取得することができる。
     * また、その内容は配列のように arguments[i] で取得することができる。
     */
    for (var i=0; i<arguments.length; i++) {
        alert(arguments[i]); // 1, 2, 3, 4, 5, 6
    }
    // 関数に元々定義されていた引数の数
    alert(func.length); // 2(p1, p2)
}

// 定義数以上のパラメータを与えて呼び出す
func(1, 2, 3, 4, 5, 6);

上記のサンプルでは、元々定義されている個数以上のパラメータを与えましたが、少なく呼び出すこともできます。

// パラメータ数1で呼び出し
func(1);

// パラメータなしで呼び出し
func();

扱いを間違うとソースコードが乱れそうです

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>