Javascript 如何生成具有无限参数的构造函数?

Javascript 如何生成具有无限参数的构造函数?,javascript,arrays,arguments,Javascript,Arrays,Arguments,我正在观看NewBoston的“初学者JavaScript教程-28-数组”,看到他使用new array()方法创建了一个数组; 我的第一个想法是,Array()就像一个构造函数,可以接受大量的参数(如果不是无限的话)。 我的问题是,一个人如何构造这样一个可以接受无限多参数的构造函数? 你有成千上万的构造器吗?(这将是一项没有人愿意做的工作。) 以下是一个例子: var names = new Array('John', 'Mary', 'Thomas', 'Sara'); 这里我创建了一个

我正在观看NewBoston的“初学者JavaScript教程-28-数组”,看到他使用new array()方法创建了一个数组; 我的第一个想法是,Array()就像一个构造函数,可以接受大量的参数(如果不是无限的话)。 我的问题是,一个人如何构造这样一个可以接受无限多参数的构造函数? 你有成千上万的构造器吗?(这将是一项没有人愿意做的工作。)

以下是一个例子:

var names = new Array('John', 'Mary', 'Thomas', 'Sara');
这里我创建了一个只有4个参数的数组,但是如果我是正确的,我可以在这个数组中存储数千个名称。 再说一次,您如何制作这样一个可以接受大量参数的构造函数

先谢谢你

function logArgs() {
    console.log(arguments);
}
logArgs(1, 2, 3); //=> [1, 2, 3]
arguments
是一个类似数组的对象,包含传递给函数的所有参数

当然,
数组
构造函数很可能是本机实现的,但这就是您自己创建类似函数/构造函数的方法


有关更多信息,请参见。

无论如何,在一个数组中传递所有参数是一种很好的做法。并且可以解决您的问题

Array()
实际上是一个可以接受大量参数的构造函数。JavaScript中的所有函数都可以用任意数量的参数调用,而不管函数是如何声明的。这门语言在这方面明显不同于许多其他通用语言。我现在明白了。感谢您需要注意的一点是,在ES2015中,您可以使用获取实际的数组实例,而不是类似数组的对象<代码>函数logArgs(…args){console.log(args);}