關於js回撥方法及遞迴時的使用

gamebus發表於2021-09-09

js中遞迴呼叫本身可以這樣:

function a1(n){  a1(n)}

但是如果需要在引數n進行自增的情況下判斷會出錯:

function a1(n){    if(n>10) return 'aaa';    n++;    a1(n)}

此時執行 a1(1)時得到的結果只能是  ‘undefined’
經過一番研究發現想到得到正確的結果 ‘aaa’
則需要這樣

function a1(n){    if(n>10) return 'aaa';    n++;    return a1(n)}

因為如果不在執行下一次a1時將其作為結果返回,則第一輪執行a1時其實已經結束了,作為後續執行的a1應該就會僅執行而沒有返回結果給任何函式或變數或方法,僅僅是執行了而已,而不會對第一次執行有任何影響。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2815935/,如需轉載,請註明出處,否則將追究法律責任。

相關文章