6 JS的尾呼叫優化

2022-10-07 00:33:10 字數 390 閱讀 9429

當內部函式的返回值也是外部函式的返回值時,引擎把外部函式的棧幀彈出也無影響

外部函式的返回值是乙個內部函式的返回值,滿足以下條件即可以:

外部函式的返回值是對尾呼叫函式的呼叫 +

尾呼叫函式返回後不需要執行額外的邏輯+

尾呼叫函式非閉包

//

比如遞迴使用尾呼叫優化

//基礎框架

function

fib(n)

//執行遞迴

function

fibimpl(a, b, n)

return fibimpl(b, a + b, n - 1);

}這樣重構之後,就可以滿足尾呼叫優化的所有條件,再呼叫 fib(1000)就不會對瀏覽器造成威脅了

尾呼叫優化

尾呼叫 tail call 是函式式程式設計的乙個重要概念,本文介紹它的含義和用法。一 什麼是尾呼叫?尾呼叫的概念非常簡單,一句話就能說清楚,就是指某個函式的最後一步是呼叫另乙個函式。function f x 上面 中,函式f的最後一步是呼叫函式g,這就叫尾呼叫。以下兩種情況,都不屬於尾呼叫。情況一...

尾呼叫優化

本文 日期 2015年4月10日 尾呼叫 tail call 是函式式程式設計的乙個重要概念,本文介紹它的含義和用法。尾呼叫的概念非常簡單,一句話就能說清楚,就是指某個函式的最後一步是呼叫另乙個函式。function f x 上面 中,函式f的最後一步是呼叫函式g,這就叫尾呼叫。以下兩種情況,都不屬...

尾呼叫優化

尾呼叫的概念非常簡單,一句話就能說清楚,就是指某個函式的最後一步是呼叫另乙個函式。function f x 上面 中,函式f的最後一步是呼叫函式g,這就叫尾呼叫。以下兩種情況,都不屬於尾呼叫。情況一 function f x 情況二 function f x 上面 中,情況一是呼叫函式g之後,還有別...