一个递归的小例子,在函数内部调用函数本身
var box = function(num){
if(num <= 1){
return 1;
}else{
return num * box(num - 1);
}
}
alert(box(4));
输出:24 >>> 4*3*2*1。
假如box函数名字被修改,那么内部的调用函数本身的函数名也需要修改,为了避免修改内部函数修改,可以将内部调用函数本身改为:arguments.callee(调用函数本身);
var box = function(num){
if(num <= 1){
return 1;
}else{
return num * arguments.callee(num - 1);
}
}
alert(box(4));
输出与上面一样:24 >>> 4*3*2*1