如何在javascript中创建具有可变参数的函数?

如何在javascript中创建具有可变参数的函数?,javascript,variadic-functions,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); 有人知道如何定义这个函数吗?请参考参数数组 您可以按参数的顺序位置访问参数,而无需在原型中声明它们,如下所示: function myFunction() { for (var i = 0; i &l

我想用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);

有人知道如何定义这个函数吗?

请参考参数数组


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

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

myFunction(1, 2, "three");

>>1
>>2
>>three

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

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");

像这样使用“arguments”变量:

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

作为附加组件:您可以为未命名的函数参数赋值,如中所示

最新更新 所有新浏览器都支持Rest参数。

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]

@我不同意,这不是同一个问题。。。在这里,我讨论了参数的数量,另一个讨论了默认参数的可能重复,我在《Javascript,最终指南》一书中也看到了这个解决方案。谢谢
myFunction(1,2);
myFunction(1,2,3,4,5,6);
arguments[0] = 5;
function myFunction(...data){
  console.log(...data);
  myOtherFunction(...data);
}

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

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