遞歸函數: function factorical(num){ if(num<=1){ return 1; } else{ return num*factorical(num-1); } } factorial(2)//2 這個遞歸函數就是用函數來調用函數本身,但是這樣真的好嗎,好 接下來看這裡 v ...
遞歸函數:
function factorical(num){
if(num<=1){
return 1;
}
else{
return num*factorical(num-1);
}
}
factorial(2)//2
這個遞歸函數就是用函數來調用函數本身,但是這樣真的好嗎,好 接下來看這裡
var another=factorical;
factorical=null;
console.log(another(2))//會報錯說 factorical not a function
這就是函數調用函數的弊端,那怎麼解決呢,看下麵
function factorical(num){
if(num<=1){
return 1;
}
else{
return num*arguments.callee(num-1);
}
}
var another=factorical;
factorical=null;
console.log(another(2))//2
以上 用arguments.callee去代替函數名,就可以確保函數不管怎麼調用都不會出錯