标签:return uncaught 递归 not 报错 null cal 变化 function
递归函数就是在函数体内调用本函数;
递归函数的使用要注意函数终止条件避免死循环;
1.声明一个具名函数,通过函数名调用
function f(a){ if(a<=1){ return 1 }else{ return a*f(a-1) } }
但是这样使用会因为 函数名 f 的变化而报错,
f = null f () // Uncaught TypeError: f is not a function
2. 使用arguments.callee代替函数名
在严格模式下不支持使用arguments.callee
h3.使用函数表达式
var fun = (function f(a){ if(a<=1){ return 1 }else{ return a*f(a-1) } }) // 或: var f = function (a){ if(a<=1){ return 1 }else{ return a*f(a-1) } } var fun = f;
标签:return uncaught 递归 not 报错 null cal 变化 function
原文地址:https://www.cnblogs.com/lizhiwei8/p/11526377.html