更新時(shí)間:2021-07-20 16:52:47 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1549次
編程語言中,函數(shù)Func(Type a,……)直接或間接調(diào)用函數(shù)本身,則該函數(shù)稱為遞歸函數(shù)。遞歸函數(shù)不能定義為內(nèi)聯(lián)函數(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ò)。
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"JS的遞歸函數(shù)",希望對(duì)大家有幫助,想了解更多可查看JavaScript教程。動(dòng)力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對(duì)沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識(shí),讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)