在程序設計中咱們常常會用到遞歸函數,而對於遞歸函數的算法你們應該都很熟悉。下面以求1到N的和爲例子,跟你們分享一下使用arguments.callee實現匿名函數的遞歸。算法
常規方法以下:函數
var fn =function(n){ if(n>=1) return n+fn(n-1); return 0; } alert(fn(10));//55
上面的是普通作法,但在複雜的程序設計中咱們或許只要求調用一次該函數,在要求儘可能少的函數名定義時,匿名函數是咱們的比較理想的選擇。但匿名函數如何遞歸呢?這裏咱們能夠使用arguments.callee來實現。arguments.callee指代的是當前執行的函數的一個引用。設計
var b=(function(n){ if(n>=1){ return n+arguments.callee(n-1); return 0; } })(10); alert(b);
看到沒?很方便的就實現了匿名函數的遞歸運算。code