//算法 ---- 递归
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