说到函数中的arguments,其实说白了就是存放传递到函数中参数的容器
我们先来看看函数的参数的具体知识点
函数的参数
- 形参:函数定义的参数
- 实参:函数执行时实际传递的参数
形参和实参的匹配规则是从左到右匹配的,一般分两种情况
1.形参的个数大于实参,此时后面的参数应该赋值为undefined
function ces(a,b,c){
console.log(a) //1
console.log(b) //2
console.log(c)//undefined
}
ces(1,2)
2.形参的个数小于实参,多于的参数可以通过arguments访问,哈哈arguments终于来了
function ces2(a){
console.log(arguments)
}
ces2(1,2,3)
可以发现通过打印arguments可以获取到传递的所有参数
arguments
arguments并不是一个数组哦,我们发现arguments中除了我们的传递的参数还有另外的内容,那么他们是什么呢?
callee
callee就是函数本身,我们可以需要调用自身时调用callee,比如求一个数的阶乘
举个栗子
function chen(x) {
if (x <= 1) {
return 1;
} else {
return x * arguments.callee(x - 1);
};
};
chen(5)//120
//具体执行5*4*3*2每次都执行自身,而callee就是执向自身的一个指针