在JS中,我对函数参数的理解是:
1.在这个这个函数中,有个arguments对象,专门用来接收函数的不同参数,这个对象有点类似数组,但并不是Array的实例,但可以在函数中使用方括号语法来访问他的每个元素(即第一个元素是arguments[0],第二个元素是arguments[1]……);对象的下标标识函数传参的顺序!
2.可以使用arguments对象的length属性来准确获得传进函数内部的参数个数;
function testFunctionArguments(num1,num2,num3) {
arguments[2] = 400;
alert(num1+arguments[1]+num3);
}
testFunctionArguments(100,200,300);
浏览器会弹出一个显示700的警示框;但有一点值得注意,arguments[2] = 300;
虽然把num3变量改为400,但arguments[2]和num3在内存是两块区域;
利用上述第二点,就可以在调用函数时,传递自己想要传递的任意参数,但保证所传递的参数在函数中有用到;
例如实现一个加法器;
function doAdd() {
var len = arguments.length;
var sum = 0;
for (var i = 0; i <len; i++) {
sum += arguments[i];
}
alert(sum);
}
doAdd(10);
doAdd(10,20);
doAdd(10,20,30);