arguments 是一个对应于传递给函数的参数的类数组对象

通常情况下函数都具有 arguments 对象,可以在函数内部直接访问到。

他是一个类数组,即长得很像数组,成员都是用数字编号,同时具有 length 属性。

arguments 中存放着当前函数被调用时,传递过来的所有参数,即便不声明参数,也可以通过 arguments 取到传递过来的参数。

function sum() {
    console.log(arguments);
}

sum(1, 2, 3, 4);

执行上述代码,可以看到在控制台输出了一个对象,存放的就是所有传递过去的参数,利用这一特性,就可以不限制参数个数,或者让函数做中转站(拦截函数),利用 arguments 将参数传递给另一个函数。

如,一个不确定用户输入的参数个数的求和函数:

function sum() {
  var total = 0;

  var i;
  var len;
  for (i = 0, len = arguments.length; i < len; i++) {
    total += arguments[i];
  }

  return total;
}

var total = sum(1, 2, 3, 4, 15);
console.log(total); // 输出:25

通过循环遍历 arguments 对象,就可以得到所有参数,然后做累加就可以达到求和的目的。

posted @ 2022-08-23 09:31  神奇名字  阅读(58)  评论(0)    收藏  举报