函数表达式--递归
遞歸
遞歸函數(shù)是在一個(gè)函數(shù)通過(guò)名字調(diào)用自身的情況下構(gòu)成的
function f(num) {if (num <= 1) {return 1;} else {return num * f(num - 1)} } f(3) // 6var anotherFactorial = f; f = null; //f指向一個(gè)空指針 alert(anotherFactorial(4)); //出錯(cuò)!arguments.callee 是一個(gè)指向正在執(zhí)行的函數(shù)的指針,因此可以用它來(lái)實(shí)現(xiàn)對(duì)函數(shù)的遞歸調(diào)用
function f(num) {if (num <= 1) {return 1;} else {return num * arguments.callee(num-1)} } f(3) // 6var anotherFactorial = f; f = null; //f指向一個(gè)空指針 alert(anotherFactorial(4)); //24但在嚴(yán)格模式下,不能通過(guò)腳本訪問(wèn) arguments.callee ,訪問(wèn)這個(gè)屬性會(huì)導(dǎo)致錯(cuò)誤。不過(guò),可以使用命名函數(shù)表達(dá)式來(lái)達(dá)成相同的結(jié)果
var factorial = (function f (num) { if (num <= 1){ return 1; } else { return num * f(num-1); } }); factorial(4) //24這種方式在嚴(yán)格模式和非嚴(yán)格模式下都行得通
來(lái)源:https://segmentfault.com/a/1190000016549753
轉(zhuǎn)載于:https://www.cnblogs.com/qixidi/p/10391025.html
總結(jié)
- 上一篇: Redis单机部署、添加开机自启、配置参
- 下一篇: MySql学习15----MySql日志