欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript遞歸函數定義與用法實例分析

 更新時間:2019年01月24日 12:06:14   作者:deniro_li  
這篇文章主要介紹了JavaScript遞歸函數定義與用法,結合實例形式分析了javascript遞歸的原理、函數定義、使用方法及操作注意事項,需要的朋友可以參考下

本文實例講述了JavaScript遞歸函數定義與用法。分享給大家供大家參考,具體如下:

遞歸函數是一個函數通過名字調用自身的情況下形成的,比如經典的遞歸階乘函數:

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

上面的這種寫法,可能會造成問題:

var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial(4));//出錯

因為 factorial 函數定義內部使用了自身的函數名,所以當 factorial 被置為 null 后,factorial 已不是函數,自然報錯啦 O(∩_∩)O~。

可以使用 arguments.callee 指向正在執(zhí)行的函數的指針來避免上面出現的問題:

function factorial(num) {
  if (num <= 1) {
    return 1;
  } else {
    return num * arguments.callee(num - 1);
  }
}
var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial(4));

運行結果:24

但在嚴格模式下,不能訪問 arguments.callee,但可以使用命名函數表達式來實現上述功能:

var factorial = (
    function f(num) {
      if (num <= 1) {
        return 1;
      } else {
        return num * f(num - 1);
      }
    }
);
var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial(4));

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數據結構與算法技巧總結》、《JavaScript數學運算用法總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • BootStrap 彈出層代碼

    BootStrap 彈出層代碼

    這篇文章主要介紹了BootStrap 彈出層代碼的相關資料,非常補充,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • JSON簡介以及用法匯總

    JSON簡介以及用法匯總

    JSON(JavaScript Object Notation)即JavaScript對象表示法,是一種輕量級的數據交換格式。它非常便于編程人員對數據的處理,也便于機器對數據的解析和生成,應用非常廣泛
    2016-02-02
  • 可以將word轉成html的js代碼

    可以將word轉成html的js代碼

    這段很短的代碼,可以將word轉出html格式的代碼,當然word自己也帶的,另存為里面就有的,喜歡的朋友可以試試。
    2010-04-04
  • JavaScript 實現的checkbox經典實例分享

    JavaScript 實現的checkbox經典實例分享

    本文主要給大家分享的是JavaScript實現checkbox多項選擇的經典代碼,非常的簡單實用,有需要的小伙伴可以參考下
    2016-10-10
  • 微信頭像地址失效踩坑記附帶解決方案

    微信頭像地址失效踩坑記附帶解決方案

    這篇文章主要介紹了微信頭像地址失效踩坑記附帶解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 如何在Web頁面上直接打開、編輯、創(chuàng)建Office文檔

    如何在Web頁面上直接打開、編輯、創(chuàng)建Office文檔

    如何在Web頁面上直接打開、編輯、創(chuàng)建Office文檔...
    2007-03-03
  • 每天一篇javascript學習小結(屬性定義方法)

    每天一篇javascript學習小結(屬性定義方法)

    這篇文章主要介紹了javascript中的屬性定義方法知識點,對屬性定義方法的基本使用方法,以及各種方法進行整理,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 原生JS實現簡單計算器功能

    原生JS實現簡單計算器功能

    這篇文章主要為大家詳細介紹了原生JS實現簡單計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • js a標簽點擊事件

    js a標簽點擊事件

    本文將詳細介紹a標簽上的點擊事件的相關知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • JavaScript判斷數組的方法總結與推薦

    JavaScript判斷數組的方法總結與推薦

    這篇文章主要給大家介紹了關于JavaScript判斷數組方法的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-02-02

最新評論