javascript之嵌套函數(shù)使用方法
更新時間:2010年03月15日 11:03:06 作者:
在javascript中允許使用嵌套函數(shù),下面是簡單的例子。
在javascript中允許使用嵌套函數(shù):
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
記住這名話:
嵌套實際是要實現(xiàn)一種循環(huán),是循環(huán)就有雙個把柄讓我們抓:一個是終止條件,一個是增量。
嵌套函數(shù)和普通函數(shù)有一點不同:
既然是嵌套函數(shù),就是把自身當(dāng)作值運用到函數(shù)體內(nèi)。這就要求函數(shù)必須有一個返回值。就要用return語句。
舉例分析:
例一:
function a(x){
if(x<=1) return 1;
else return x*a(x-1);
}
例一是一個嵌套函數(shù),讓我們來找一下二個把柄:if(x<=1) return 1;這是終止條件,當(dāng)x<=1時終止,else return x*a(x-1);這是增量,每次嵌套調(diào)用函數(shù)a()時參數(shù)都會減1。
所以這個例子也可以像例二中那樣轉(zhuǎn)換成一個循環(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ù)就是要實現(xiàn)這樣的循環(huán)。
例三:
function a(x){
if(x<=1) return 1;
else{
x--;
return (x+1)*a(x);
}
}
如例三,只要我們在嵌套函數(shù)中確定了二個把柄,放在哪里沒關(guān)系都可以實現(xiàn)函數(shù)的嵌套,顯然這樣寫沒有例一那么好,是這樣的。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
記住這名話:
嵌套實際是要實現(xiàn)一種循環(huán),是循環(huán)就有雙個把柄讓我們抓:一個是終止條件,一個是增量。
嵌套函數(shù)和普通函數(shù)有一點不同:
既然是嵌套函數(shù),就是把自身當(dāng)作值運用到函數(shù)體內(nèi)。這就要求函數(shù)必須有一個返回值。就要用return語句。
舉例分析:
例一:
復(fù)制代碼 代碼如下:
function a(x){
if(x<=1) return 1;
else return x*a(x-1);
}
例一是一個嵌套函數(shù),讓我們來找一下二個把柄:if(x<=1) return 1;這是終止條件,當(dāng)x<=1時終止,else return x*a(x-1);這是增量,每次嵌套調(diào)用函數(shù)a()時參數(shù)都會減1。
所以這個例子也可以像例二中那樣轉(zhuǎn)換成一個循環(huán)體。
例二:
復(fù)制代碼 代碼如下:
function a(x){
if(x<=1) return 1;
else{
var m=1;
for(var i=2;i<=x;i++){
m*=i;
}
return m;
}
}
如例二所示,嵌套函數(shù)就是要實現(xiàn)這樣的循環(huán)。
例三:
復(fù)制代碼 代碼如下:
function a(x){
if(x<=1) return 1;
else{
x--;
return (x+1)*a(x);
}
}
如例三,只要我們在嵌套函數(shù)中確定了二個把柄,放在哪里沒關(guān)系都可以實現(xiàn)函數(shù)的嵌套,顯然這樣寫沒有例一那么好,是這樣的。
您可能感興趣的文章:
- JS遍歷數(shù)組和對象的區(qū)別及遞歸遍歷對象、數(shù)組、屬性的方法詳解
- JS遞歸遍歷對象獲得Value值方法技巧
- Node.js 使用遞歸實現(xiàn)遍歷文件夾中所有文件
- JavaScript實現(xiàn)多叉樹的遞歸遍歷和非遞歸遍歷算法操作示例
- javascript實現(xiàn)網(wǎng)頁子頁面遍歷回調(diào)的方法(涉及 window.frames、遞歸函數(shù)、函數(shù)上下文)
- js中遍歷對象的屬性和值的方法
- js Map List 遍歷使用示例
- Javascript的數(shù)組與字典用法與遍歷對象的技巧
- JS獲取元素多層嵌套思路詳解
- JS實現(xiàn)水平遍歷和嵌套遞歸操作示例
相關(guān)文章
替代window.event.srcElement效果的可兼容性的函數(shù)
getEvent()方法可模擬window.event效果2009-12-12
js實現(xiàn)一個可以兼容PC端和移動端的div拖動效果實例
這篇文章主要介紹了js實現(xiàn)一個可以兼容PC端和移動端的div拖動效果實例,具有一定的參考價值,有需要的可以了解一下。2016-12-12
Bpmn.js activiti 流程編輯器詳細(xì)教程
流程編輯器是一種用于創(chuàng)建、編輯和管理流程圖的工具,它提供了一個可視化的界面,使用戶能夠以圖形化的方式定義和配置流程的各個步驟、條件和流程間的關(guān)系,說明關(guān)于bpmn.js的一些事件, 通過本文你可以了解到,感興趣的朋友一起看看吧2023-10-10
javascript html 靜態(tài)頁面?zhèn)鲄?shù)
靜態(tài)頁面中用js獲取頁面參數(shù)的一些屬性方法,具體的獲取參數(shù),可以搜索本站以前的一些文章。2009-04-04
javascript數(shù)組按屬性分組實現(xiàn)方法
在開發(fā)過程中,前端有時需要對后端返回的數(shù)據(jù)進行一些處理,當(dāng)后端返回給我們json對象數(shù)組時,我們可能會需要按照對象中的某一個屬性來進行分組,下面這篇文章主要給大家介紹了關(guān)于javascript數(shù)組按屬性分組的實現(xiàn)方法,需要的朋友可以參考下2023-05-05
JavaScript駕馭網(wǎng)頁-獲取網(wǎng)頁元素
這篇文章主要介紹了JavaScript駕馭網(wǎng)頁-獲取網(wǎng)頁元素的相關(guān)資料,需要的朋友可以參考下2016-03-03

