javascript之嵌套函數(shù)使用方法
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
記住這名話:
嵌套實(shí)際是要實(shí)現(xiàn)一種循環(huán),是循環(huán)就有雙個(gè)把柄讓我們抓:一個(gè)是終止條件,一個(gè)是增量。
嵌套函數(shù)和普通函數(shù)有一點(diǎn)不同:
既然是嵌套函數(shù),就是把自身當(dāng)作值運(yùn)用到函數(shù)體內(nèi)。這就要求函數(shù)必須有一個(gè)返回值。就要用return語(yǔ)句。
舉例分析:
例一:
function a(x){
if(x<=1) return 1;
else return x*a(x-1);
}
例一是一個(gè)嵌套函數(shù),讓我們來(lái)找一下二個(gè)把柄:if(x<=1) return 1;這是終止條件,當(dāng)x<=1時(shí)終止,else return x*a(x-1);這是增量,每次嵌套調(diào)用函數(shù)a()時(shí)參數(shù)都會(huì)減1。
所以這個(gè)例子也可以像例二中那樣轉(zhuǎn)換成一個(gè)循環(huán)體。
例二:
function a(x){
if(x<=1) return 1;
else{
var m=1;
for(var i=2;i<=x;i++){
m*=i;
}
return m;
}
}
如例二所示,嵌套函數(shù)就是要實(shí)現(xiàn)這樣的循環(huán)。
例三:
function a(x){
if(x<=1) return 1;
else{
x--;
return (x+1)*a(x);
}
}
如例三,只要我們?cè)谇短缀瘮?shù)中確定了二個(gè)把柄,放在哪里沒(méi)關(guān)系都可以實(shí)現(xiàn)函數(shù)的嵌套,顯然這樣寫(xiě)沒(méi)有例一那么好,是這樣的。
- JS遍歷數(shù)組和對(duì)象的區(qū)別及遞歸遍歷對(duì)象、數(shù)組、屬性的方法詳解
- JS遞歸遍歷對(duì)象獲得Value值方法技巧
- Node.js 使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件
- JavaScript實(shí)現(xiàn)多叉樹(shù)的遞歸遍歷和非遞歸遍歷算法操作示例
- javascript實(shí)現(xiàn)網(wǎng)頁(yè)子頁(yè)面遍歷回調(diào)的方法(涉及 window.frames、遞歸函數(shù)、函數(shù)上下文)
- js中遍歷對(duì)象的屬性和值的方法
- js Map List 遍歷使用示例
- Javascript的數(shù)組與字典用法與遍歷對(duì)象的屬性技巧
- JS獲取元素多層嵌套思路詳解
- JS實(shí)現(xiàn)水平遍歷和嵌套遞歸操作示例
相關(guān)文章
自己寫(xiě)了一個(gè)展開(kāi)和收起的多更能型的js效果
展開(kāi)和收起這樣的效果想必大家早就眼熟了吧,利用閑暇時(shí)間用js寫(xiě)了一個(gè)具體功能:當(dāng)自己處于全部顯示的時(shí)候,點(diǎn)擊自己的收起,自己收起等等感興趣的你可以參考下哈2013-03-03Javascript編寫(xiě)俄羅斯方塊思路及實(shí)例
本文主要給大家介紹的是使用javascript編寫(xiě)俄羅斯方塊小游戲的思路和具體的實(shí)例代碼,有需要的小伙伴可以參考下2015-07-07一起來(lái)看看JavaScript數(shù)據(jù)類(lèi)型最詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript數(shù)據(jù)類(lèi)型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01JS實(shí)現(xiàn)的類(lèi)似微信聊天效果示例
這篇文章主要介紹了JS實(shí)現(xiàn)的類(lèi)似微信聊天效果,可實(shí)現(xiàn)模擬微信聊天效果的對(duì)話框信息傳輸,涉及javascript事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-01-01Javascript實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了Javascript實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11談?wù)凧avaScript異步函數(shù)發(fā)展歷程
對(duì)大部分JavaScript開(kāi)發(fā)者而言,async函數(shù)仍是新鮮事物,其發(fā)展經(jīng)歷了漫長(zhǎng)的旅程。本文將梳理總結(jié)JavaScript異步函數(shù)的發(fā)展歷程,并表示未來(lái)async函數(shù)將成為實(shí)現(xiàn)異步的主要方式。2015-09-09ES6擴(kuò)展運(yùn)算符的理解與使用場(chǎng)景
擴(kuò)展運(yùn)算符( spread )是三個(gè)點(diǎn)(...),它好比 rest 參數(shù)的逆運(yùn)算,將一個(gè)數(shù)組轉(zhuǎn)為用逗號(hào)分隔的參數(shù)序列,這篇文章主要給大家介紹了關(guān)于ES6擴(kuò)展運(yùn)算符的理解與使用場(chǎng)景的相關(guān)資料,需要的朋友可以參考下2021-09-09Layui 設(shè)置select下拉框自動(dòng)選中某項(xiàng)的方法
今天小編就為大家分享一篇Layui 設(shè)置select下拉框自動(dòng)選中某項(xiàng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08suggestion開(kāi)發(fā)小結(jié)以及對(duì)鍵盤(pán)事件的總結(jié)(針對(duì)中文輸入法狀態(tài))
suggestion開(kāi)發(fā)小結(jié)以及對(duì)鍵盤(pán)事件的總結(jié)(針對(duì)中文輸入法狀態(tài)),需要的朋友可以參考下。2011-12-12