说到函数中的arguments,其实说白了就是存放传递到函数中参数的容器
咱们先来看看函数的参数的具体知识点
数组
形参和实参的匹配规则是从左到右匹配的,通常分两种状况
bash
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终于来了
ui
function ces2(a){
console.log(arguments)
}
ces2(1,2,3)
复制代码
能够发现经过打印arguments能够获取到传递的全部参数spa
arguments并非一个数组哦,咱们发现arguments中除了咱们的传递的参数还有另外的内容,那么他们是什么呢?
指针
callee就是函数自己,咱们能够须要调用自身时调用callee,好比求一个数的阶乘
code
举个栗子
cdn
function chen(x) {
if (x <= 1) {
return 1;
} else {
return x * arguments.callee(x - 1);
};
};
chen(5)//120
//具体执行5*4*3*2每次都执行自身,而callee就是执向自身的一个指针
复制代码