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

how to create functions with variable arguments in javascript?

本文关键字:变参 参数 函数 javascript 创建      更新时间:2023-09-26

我想在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 myFunction(arr) { ... }
result = myFunction([1,2,3]);

最新更新

所有新浏览器都支持

其余参数。点击这里查看详情

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

function myFunction(...data){
  console.log(...data);
  myOtherFunction(...data);
}
myFunction(1,2,3);     //logs 1,2,3
myFunction([1,2,3]);   //logs [1,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);

直接引用参数数组

https://developer.mozilla.org/en/JavaScript/Reference/functions_and_function_scope/arguments

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

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

作为附加组件:您可以为未命名的函数参数赋值,如(德文wiki)

arguments[0] = 5;