JavaScript函數表達式——遞歸

遞歸

遞歸函數是在一個函數通過名字調用自身的情況下構成的。

        function factorial(num) {
            if(num<=1){
                return 1;
            }else{
                return num*factorial(num-1);
            }
        }
        var anotherFactorial = factorial;
        factorial = null;
        alert(anotherFactorial(4));//error

使用arguments.callee是一個執行正在執行的函數的指針。

        function factorial(num) {
            if(num<=1){
                return 1;
            }else{
                return num*arguments.callee(num-1);
            }
        }

嚴格模式下,arguments.callee會發生錯誤,用命名函數表達式可達成相同結果。

        var factorial = (function f(num) {
            if (num<=1) {
                return 1;
            }else{
                return num*f(num-1)
            }
        });
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容