arguments 是一个类数组对象。
后台其他的语言都有一种函数重载现象。就是函数名相同,但是传递的参数不同。属于不同的函数。但是JS中是没有重载现象的。JS中函数名相同,传递参数不同时,后面的会覆盖前面的。
function fun(a,b) { console.log(1); } function fun(a,b,c) { console.log(2); } function fun(a,b,c,d) { console.log(3); } fun(1,2);
最后的结果只会是 3. 因为最后一个function fun,覆盖了之前的function fun。
function sum(a,b) { return a+b+ arguments[2]; } console.log(sum(1,2,3,4,5,6));
这里的最终结果是 1+2+3 = 6;因为arguments[2] = 3.
这里arguments指导入的整个参数(1,2,3,4,5,6);
下图是让你看看这个arguments到底是什么。