我的理解是:
 /*
5 * test(4);
4 * test(3);
3 * test(2);
2 * test(1);
1 * test(0); //这里执行到0的时候,已经不成立了.所以返回1给函数,现在函数是test(0).
       然后在往上执行.
       现在是1*test(1) * test(2) * test(3) * test(4) * test(5) == 120.       是这样理解吗?
*/function test(n){
if(n){
return n * test(n-1);
}
else{
return 1;
}
}
document.write(test(5));