CoffeeScript 遞歸函數(shù)

2022-06-29 17:06 更新

遞歸函數(shù)

問題

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

解決方案

使用一個命名函數(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ù)相對來說目的更加明確,也更易于代碼的維護。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號