2

如何在数组中获取 javascript 中的所有函数参数?

function(a, b, c){

 // here how can I get an array of all the arguments passed to this function
 // like [value of a, value of b, value of c]
}
4

4 回答 4

11

你想要数组对象。arguments

function x(a, b, c){
    console.log(arguments); // [1,2,3]
}

x(1,2,3);

更新arguments实际上不是一个数组,它是一个“类似数组的对象”。要创建一个真正的数组,请执行以下操作:

var args = Array.prototype.slice.call(arguments);
于 2012-06-19T17:40:45.190 回答
9

您使用该arguments对象(它不是其他答案中所述的数组,它具有其他一些有趣的属性,请参见 此处)。当您定义函数本身时,它会在函数的范围内自动创建。

functon bar(arg1,arg2,arg3,...)
{
     console.log(arguments[2]); // gets "arg2"'s value
}

还有另一种形式作为函数对象的属性:

function foo(a,b,c,d) {
}

var args = foo.arguments;

但是,虽然受到支持,但它已被弃用。

于 2012-06-19T17:47:41.537 回答
5

访问参数对象。

function(a, b, c){
    console.log(arguments);
    console.log(arguments[0]);
    console.log(arguments[1]);
    console.log(arguments[2]);
}
于 2012-06-19T17:40:23.520 回答
5

使用参数:

for (var i = 0; i < arguments.length; i++) {
  // arguments[i]
}
于 2012-06-19T17:40:32.443 回答