-2

重複の可能性:
任意の数のパラメーターを Javascript 関数に渡す

n個の引数で次のことをどのように達成できますか?

function aFunction() {

    if ( arguments.length == 1 ) {
        anotherFunction( arguments[0] );
    } else if ( arguments.length == 2 ) {
        anotherFunction( arguments[0], arguments[1] );
    } else if ( arguments.length == 3 ) {
        anotherFunction( arguments[0], arguments[1], arguments[2] );
    }

}

function anotherFunction() {
    // got the correct number of arguments
}
4

5 に答える 5

2

これを行う必要はありません。引数の数を気にせずに呼び出す方法は次のとおりです。

function aFunction() {
    anotherFunction.apply(this, arguments);
}

function anotherFunction() {
    // got the correct number of arguments
}
于 2012-10-04T07:07:58.443 に答える
0

これがサンプル関数です...

functionName = function() {
   alert(arguments.length);//Arguments length.           
}
于 2012-10-04T07:21:40.187 に答える
0

.apply()このメソッドを使用して、引数を配列または配列のようなオブジェクトとして提供する関数を呼び出すことができます。

function aFunction() {
    anotherFunction.apply(this, arguments);
}

(リンク先の MDN doco を確認すると、関数のすべての引数を他の関数に渡す具体的な例について言及されていることがわかりますが、明らかに他の多くのアプリケーションがあります。)

于 2012-10-04T07:08:20.530 に答える
0

を使用しapply()ます。Functionのプロトタイプのこのメソッドを使用すると、指定されたthisコンテキストで関数を呼び出し、引数を配列または配列のようなオブジェクトとして渡すことができます。

anotherFunction.apply(this, arguments);
于 2012-10-04T07:08:22.027 に答える
0

このような:

function aFunction() {
    var args = Array.prototype.slice.call(arguments, 0);
    anotherFunction.apply(this, args);
}
于 2012-10-04T07:09:10.107 に答える