-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

您可以使用该.apply()方法调用将参数作为数组或类似数组的对象提供的函数:

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

(如果您查看我链接到的 MDN 文档,您会看到它提到了将函数的所有参数传递给其他函数的具体示例,尽管显然还有许多其他应用程序。)

于 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 回答
0

这是示例功能...

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