使用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);設計

看到沒?很方便的就實現了匿名函數的遞歸運算。遞歸

關於arguments.callee是個神馬貨,咱們會在後續的文章中和你們一塊兒學習。io

相關文章
相關標籤/搜索