亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript遞歸函數(shù)定義與用法實(shí)例分析

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

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

遞歸函數(shù)是一個(gè)函數(shù)通過名字調(diào)用自身的情況下形成的,比如經(jīng)典的遞歸階乘函數(shù):

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

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

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

因?yàn)?factorial 函數(shù)定義內(nèi)部使用了自身的函數(shù)名,所以當(dāng) factorial 被置為 null 后,factorial 已不是函數(shù),自然報(bào)錯(cuò)啦 O(∩_∩)O~。

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

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

運(yùn)行結(jié)果:24

但在嚴(yán)格模式下,不能訪問 arguments.callee,但可以使用命名函數(shù)表達(dá)式來實(shí)現(xiàn)上述功能:

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代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • BootStrap 彈出層代碼

    BootStrap 彈出層代碼

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

    JSON簡介以及用法匯總

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

    可以將word轉(zhuǎn)成html的js代碼

    這段很短的代碼,可以將word轉(zhuǎn)出html格式的代碼,當(dāng)然word自己也帶的,另存為里面就有的,喜歡的朋友可以試試。
    2010-04-04
  • JavaScript 實(shí)現(xiàn)的checkbox經(jīng)典實(shí)例分享

    JavaScript 實(shí)現(xiàn)的checkbox經(jīng)典實(shí)例分享

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

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

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

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

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

    每天一篇javascript學(xué)習(xí)小結(jié)(屬性定義方法)

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

    原生JS實(shí)現(xiàn)簡單計(jì)算器功能

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

    js a標(biāo)簽點(diǎn)擊事件

    本文將詳細(xì)介紹a標(biāo)簽上的點(diǎn)擊事件的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • JavaScript判斷數(shù)組的方法總結(jié)與推薦

    JavaScript判斷數(shù)組的方法總結(jié)與推薦

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

最新評(píng)論