JS中使用arguments.callee實現匿名函數的遞歸

在程序設計中咱們常常會用到遞歸函數,而對於遞歸函數的算法你們應該都很熟悉。下面以求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

相關文章
相關標籤/搜索