调用具有可变数量参数的函数

时间:2012-10-04 07:05:50

标签: javascript

  

可能重复:
  Pass arbitrary number of parameters into Javascript function

如何使用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
}

5 个答案:

答案 0 :(得分:2)

您不需要这样做。以下是如何在不关心你有多少论据的情况下调用它的方法:

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

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

答案 1 :(得分:0)

你可以使用.apply() method来调用一个提供参数的函数作为数组或类数组的对象:

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

(如果你检查我链接到的MDN doco,你会看到它提到你将所有函数的参数传递给其他函数的具体例子,尽管很明显还有很多其他的应用程序。)

答案 2 :(得分:0)

使用apply()Function原型上的此方法允许您调用具有指定this上下文的函数,并将参数作为数组或类似数组的对象传递。

anotherFunction.apply(this, arguments);

答案 3 :(得分:0)

像这样:

function aFunction() {
    var args = Array.prototype.slice.call(arguments, 0);
    anotherFunction.apply(this, args);
}

答案 4 :(得分:0)

以下是Sample函数...

functionName = function() {
   alert(arguments.length);//Arguments length.           
}