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 对象,就可以得到所有参数,然后做累加就可以达到求和的目的。

浙公网安备 33010602011771号