如何在函数对象上使用“arguments”键?

时间:2014-07-03 04:48:51

标签: javascript

如果我输入此内容并在我的Chrome控制台中查看:

function f(){}
console.dir(f);

显示的是这些键:

> arguments
> caller
> length
> name
> prototype
> __proto__

现在,我很好奇构造函数的关键参数是否以某种方式帮助我查看传递给函数的参数,但每次我将参数传递给它触发的函数它会自动关闭:

function f(a){alert(a)}
console.dir(f("test"));

因此,作为分析工具,它似乎毫无用处。这个关键是暂时保存参数,仅仅是为了传递参数吗?或者这个键有什么别的吗?我确定这可能是一个愚蠢的问题,但我很好奇。

3 个答案:

答案 0 :(得分:1)

  1. 参数对象是所有函数中可用的局部变量。

  2. 您可以使用参数对象在函数中引用函数的参数。该对象包含传递的每个参数的条目。

  3. 如果函数传递了三个参数,则可以按如下方式引用该参数:

    arguments[0] arguments[1] arguments[2]

  4. 参考链接arguments

答案 1 :(得分:0)

arguments是一个类似对象的数组,可以在javascript中的函数对象中使用。它允许函数一种方法来计算在调用函数时使用但没有专门为其赋值的参数。

var mul = function ( ) {
   var i, total = 0;
   for (i = 0; i < arguments.length; i += 1) {
      total *= arguments[i];
   }
   return total;
};
document.writeln(mul(4, 8, 2)); //64

来源:http://goo.gl/hKpFGl 这个解释直接从这里被撕掉了。如果你想熟悉javascript提供的一些好的模式,这不是一个好的开始。

答案 2 :(得分:0)

arguments是一个类似于Array的对象,对应于传递给函数的参数。

例如:

function callMe (a, b, c){
 console.log(arguments);
}

callMe(); // return empty array []
callMe(1,2); // return array [1, 2]
callMe(1,2,3); // return empty array [1, 2, 3]
callMe(1,2,3,4); // return empty array [1, 2, 3, 4]

如需更多帮助,请阅读此文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments