A JavaScript Fancier

伟大的javascript技术研究中...

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  304 随笔 :: 0 文章 :: 479 评论 :: 0 Trackbacks


实现递归的算法大家都是很熟悉的,比如一个求0到n的和的递归函数如下:
var fn=function(n){
        
if(n>0return n+fn(n-1);
        
return 0;
    }
    alert(fn(
10))
当然这是一个很简单的函数,如果在一个很复杂的程序中我们可能只需要调用一次该函数,为了函数的精简我们当然要努力较少函数名的定义,这是很自然会想到用匿名函数来直接执行。但是如果是匿名函数如何实现递归?arguments.callee正好派上用场,他指代的就是当前执行的函数的引用。

利用匿名函数实现的递归如下:
var s=(function(n){
        
if(n>0return n+arguments.callee(n-1);
        
return 0;
    })(
10);
    alert(s)
一点小总结,主要是对匿名函数及arguments.calle的一些应用,例子举的不是很恰当,但这些知识在开发中还是有用的,总计起来增强一下自己的记忆。

<

posted on 2008-07-10 10:13 Yemoo'S JS Blog 阅读(7338) 评论(2)  编辑 收藏 引用 所属分类: javascript技巧总结

评论

# re: 利用arguments.callee实现匿名函数的递归 2014-03-05 17:49 -
(function fn(n){
if(n>0) return n+fn(n-1);
return 0;
}(10));
效率会好一些而且fn这个变量名外面看不到。  回复  更多评论
  

# re: 利用arguments.callee实现匿名函数的递归 2016-07-10 15:47 匿名函数
http://uedbet-getafe.weebly.com  回复  更多评论
  

只有注册用户登录后才能发表评论。