算法----递归

//算法 ---- 递归

function fn(n) {
    if (n === 1) {
        return n;
    }
    else {
        return n * arguments.callee(n-1);
    }
}

console.log(fn(5));
arguments.callee返回正被执行的 Function 对象  等同于fn;

特点:消除代码耦合、匿名函数的递归

第一步:5 * fn(4)

第二步:5 * 4 * fn(3)

依次类推

最后一步:5 * 4 * 3 * 2 * fn(1)   fn(1)得到的返回值就是1  ===> 5 * 4 * 3 * 2 * 1

  

posted on 2018-10-18 17:02  斜杠人生  阅读(108)  评论(0编辑  收藏  举报

导航