JavaScript 可变数量的函数参数

有没有办法在JavaScript中允许函数的“无限”vars?

例:

load(var1, var2, var3, var4, var5, etc...)
load(var1)

答案 1

当然,只需使用对象即可。arguments

function foo() {
  for (var i = 0; i < arguments.length; i++) {
    console.log(arguments[i]);
  }
}

答案 2

在(大多数)最新的浏览器中,您可以使用以下语法接受可变数量的参数:

function my_log(...args) {
     // args is an Array
     console.log(args);
     // You can pass this array as parameters to another function
     console.log(...args);
}

下面是一个小示例:

function foo(x, ...args) {
  console.log(x, args, ...args, arguments);
}

foo('a', 'b', 'c', z='d')

=>

a
Array(3) [ "b", "c", "d" ]
b c d
Arguments
​    0: "a"
    ​1: "b"
    ​2: "c"
    ​3: "d"
    ​length: 4

此处的文档和更多示例:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters