算法----递归

//算法 ---- 递归

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

  

原文地址:https://www.cnblogs.com/yunnex-xw/p/9811615.html