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

时间:2015-12-25 14:37:41

标签: javascript arrays arguments

我正在观看新浪的“初学者JavaScript教程 - 28 - 数组”并看到他使用new Array()方法创建了一个数组; 我的第一个想法是,Array()就像一个构造函数,它可以获取大量(如果不是无限量)的参数。 我的问题是,如何构建一个可以获取无限量参数的构造函数? 你有成千上万的建造者吗? (那将是一个没人想做的工作。)

以下是一个例子:

var names = new Array('John', 'Mary', 'Thomas', 'Sara');

这里我创建了一个只有4个参数的数组,但如果我是正确的,我可以在这个数组中存储数千个名字。 再次,你如何制作一个可以采用大量参数的构造函数?

提前谢谢。

2 个答案:

答案 0 :(得分:4)

function logArgs() {
    console.log(arguments);
}
logArgs(1, 2, 3); //=> [1, 2, 3]

arguments是一个类似数组的对象,包含传递给函数的所有参数。

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

有关详细信息,请参阅the MDN doc page on arguments

答案 1 :(得分:0)

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