-
形参:函数定义的参数
-
实参:函数调用时定义的参数
-
参数是从左到右执行匹配,如果实参个数少于形参,后面的参数对应赋值
undefined -
如果实参的个数多于形参个数,可以通过
arguments访问 -
函数对象的
length属性就是函数实参的个数
-
arguments对象能够模拟重载。JavaScript中每个函数都有一个arguments对象实例arguments,引用的是函数的实参,可以用数组下标的方式“[]”引用arguments的元素 -
arguments.length为函数实参个数 -
arguments.callee指代当前正在执行的函数,可以引用匿名函数自身 -
arguments对象并不是一个数组(类数组),但访问单个参数的方式与访问数组元素的方式相同
例:
function test() {
var s = "";
for(let i = 0; i < arguments.length; i++) {
s += arguments[i] + ",";
}
console.log(s);
}
test("name","age") //name,age,
var fn = function(n) {
if (n < 2) {
return 1;
} else {
return n * arguments.callee(n-1);
}
}
let y = fn(5);
console.log(y); //120 =>相当于5*4*3*2*1