編程語言中,函數(shù)Func(Type a,……)直接或間接調(diào)用函數(shù)本身,則該函數(shù)稱為遞歸函數(shù)。遞歸函數(shù)不能定義為內(nèi)聯(lián)函數(shù)。
遞歸函數(shù):
function factorical(num){ if(num<=1){ return 1; } else{ return num*factorical(num-1); }}factorial(2)//2
這個(gè)遞歸函數(shù)就是用函數(shù)來調(diào)用函數(shù)本身,但是這樣真的好嗎,好 接下來看這里
var another=factorical;factorical=null;console.log(another(2))//會(huì)報(bào)錯(cuò)說 factorical not a function
這就是函數(shù)調(diào)用函數(shù)的弊端,那怎么解決呢,看下面
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去代替函數(shù)名,就可以確保函數(shù)不管怎么調(diào)用都不會(huì)出錯(cuò)。
以上所述是小編給大家介紹的JS中遞歸函數(shù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注