CoffeeScript 遞歸函數(shù)

2022-06-29 17:06 更新

遞歸函數(shù)

問題

你想在一個(gè)函數(shù)中調(diào)用相同的函數(shù)。

解決方案

使用一個(gè)命名函數(shù):

ping = ->
    console.log "Pinged"
    setTimeout ping, 1000

若為未命名函數(shù),則使用@arguments.callee@:

delay = 1000

setTimeout((->
    console.log "Pinged"
    setTimeout arguments.callee, delay
    ), delay)

討論

雖然arguments.callee允許未命名函數(shù)的遞歸,在內(nèi)存密集型應(yīng)用中占有一定優(yōu)勢(shì),但是命名函數(shù)相對(duì)來說目的更加明確,也更易于代碼的維護(hù)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)