Js arguments.callee();函数自己调用自己

1.阶乘的时候,函数一般要用到递归算法,所以函数内部一定会调用自身

//递归,阶乘
function sum(num){
    if (num<=1) {
        return 1;
    } else{
        return num*sum(num-1);   //自己调用自己,递归
    }
}
alert(sum(4));

2.如果函数名一旦发生改名,所需要跟着一起修改不仅仅是在调用的时候,在内部递归的时候也会跟着一起修改,如果在函数内部有很多此递归,这时修改起来就很麻烦,如果有一个地方没修改,其结果都会出错,这时候就用到arguments.calle(),递归,自己调用自己

function box(num){
    if (num<=1) {
        return 1;
    }else{
        return num*arguments.callee(num-1);
    }
}
alert(box(4));  //其结果和上面的一样

 

posted @ 2018-03-06 11:52  小欣子  阅读(938)  评论(0编辑  收藏  举报