說到函數中的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就是執向自身的一個指針
複製代碼