(function f(n){
return ( (n<1)? n*f(n-1):n )
})(6); // 720
为什么print 720呢?
每次计算都会回调自身,递归是逆向思维,从下往上算。
6 * (n-1) ==> 6 * 120 = 720 结果
5 * (n-1) ==> 5 * 24 = 120 return 120
4 (n-1) ==> return 6 == (n-1) 4 6 =24 return 24 给上一层
3 * (n-1) ==> return 2 == (n-1) 32=6 继续return 6
2 * ( n -1) ==> return 1 == (n-1) 所以21得出 2 并且继续return 2 给上一层
最后n为1 条件不满足return 1 给上一层