gpt4 book ai didi

javascript - JavaScript 函数中的无限参数

转载 作者:IT王子 更新时间:2023-10-29 03:09:13 24 4
gpt4 key购买 nike

JavaScript 函数可以接受无限个参数吗?像这样:

testArray(1, 2, 3, 4, 5...);

我正在尝试:

var arr = [];
function testArray(A) {
arr.push(A);
}

但这不起作用(输出只是第一个参数)。或者唯一的方法是:

function testArray(a, b, c, d, e...) {

}

谢谢

最佳答案

有一个奇怪的“魔法”变量可以引用,称为“arguments”:

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

一个数组,但它不是数组。事实上,它太奇怪了,你根本不应该经常使用它。一种常见的做法是将它的值放入一个真正的数组中:

function foo() {
var args = Array.prototype.slice.call(arguments, 0);
// ...

在那个例子中,“args”将是一个普通的数组,没有任何奇怪之处。 “参数”存在各种令人讨厌的问题,在 ECMAScript 5 中,它的功能将被削弱。

edit — 尽管使用 .slice() 函数确实很方便,但事实证明将 arguments 对象传递出函数导致优化令人头疼,以至于执行它的功能可能根本无法优化。因此,将 arguments 转换为数组的简单、直接的方法是

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

More about arguments and optimization.

关于javascript - JavaScript 函数中的无限参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6396046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com