编程语言中,函数 Func(Type a,……) 直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。这篇文章主要介绍了 JS 中递归函数的相关资料, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
编程语言中,函数 Func(Type a,……) 直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。
递归函数:
- function factorical(num) {
- if (num <= 1) {
- return 1;
- }
- else {
- return num * factorical(num - 1);
- }
- }
- factorial(2) //2
这个递归函数就是用函数来调用函数本身,但是这样真的好吗,好 接下来看这里
- var another = factorical;
- factorical = null;
- console.log(another(2)) //会报错说 factorical not a function
这就是函数调用函数的弊端, 那怎么解决呢,看下面
- 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 去代替函数名,就可以确保函数不管怎么调用都不会出错。
以上所述是小编给大家介绍的 JS 中递归函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 phperz 网站的支持!
来源: http://www.phperz.com/article/17/0304/264803.html