如何在javascript中创建带有变量参数的函数?

时间:2011-09-09 13:51:04

标签: javascript variadic-functions

我想在javascript中使用可变数量的参数创建一个函数。下一个例子是我想如何调用这个函数:

myFunction(1,2);
myFunction(1,2,3);
myFunction(1,2,3,4);
myFunction(1,2,3,4,5);
myFunction(1,2,3,4,5,6);

任何人都知道如何定义此功能?

6 个答案:

答案 0 :(得分:28)

您可以按顺序访问参数,而无需在原型中说明它们,如下所示:

function myFunction() {
  for (var i = 0; i < arguments.length; i++)
    alert(arguments[i]);
}

myFunction(1, 2, "three");

>>1
>>2
>>three

或者,如果您确实传递了一组与语义相关的数字,则可以使用数组;

function myFunction(arr) { ... }
result = myFunction([1,2,3]);

答案 1 :(得分:9)

最新更新

所有新浏览器均支持

休息参数Check here for details

rest参数语法允许我们将无限数量的参数表示为数组,您也可以将其传递给其他函数。

function myFunction(...data){
  console.log(...data);
  myOtherFunction(...data);
}

myFunction(1,2,3);     //logs 1,2,3

myFunction([1,2,3]);   //logs [1,2,3]

答案 2 :(得分:3)

使用'arguments'变量,如下所示:

function myFunction() {
    alert(arguments.length + ' arguments');
    for( var i = 0; i < arguments.length; i++ ) {
        alert(arguments[i]);
    }
 }

按照之前的方式调用方法

myFunction(1,2);
myFunction(1,2,3,4,5,6);

答案 3 :(得分:2)

答案 4 :(得分:2)

如果参数不存在,请使用默认值。像这样......

function accident() {
    //Mandatory Arguments
    var driver = arguments[0];
    var condition = arguments[1]

    //Optional Arguments
    var blame_on = (arguments[2]) ? arguments[2] : "Irresponsible tree" ;
}

accident("Me","Drunk");

答案 5 :(得分:1)

作为附加组件:您可以为未命名的函数参数指定值,如(german wiki)

arguments[0] = 5;