首頁 > web前端 > js教程 > JavaScript 中的生成器函數是什麼?以及它是如何運作的?

JavaScript 中的生成器函數是什麼?以及它是如何運作的?

Linda Hamilton
發布: 2024-12-31 18:47:11
原創
474 人瀏覽過

What is generator function in JavaScript? and How does it work?

JavaScript 中的生成器函數是一種特殊類型的函數,可以在執行過程中暫停和恢復。它使用 function* 語法定義,並使用yield 關鍵字順序產生值。

生成器函數的主要特徵

  1. 函數* 定義:
function* generatorFunction(){
  yield 1;
  yield 2;
  yield 3;
  yield 4; 
}
登入後複製

2.回傳一個迭代器

  • 當呼叫生成器函數時,它不會立即執行。 相反,它會傳回一個迭代器物件。
  • 迭代器有一個 next() 方法,用來控制 執行。
    1. 產量關鍵字:
  • yield關鍵字用於產生一個值並暫停產生器。
  • 當再次呼叫 next() 時,生成器從 暫停的地方。

生成器函數範例:

function* generatorFunction(){
   console.log("start");
   yield 1;
   console.log("Resume");
   yield 2; 
   console.log("End");

}
const gen = generatorFuntion();
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());
登入後複製

輸出

start 
{value: 1, done: false}
Resume
{value: 2, done: false}
End
{Value: undefined, done: true}
登入後複製

它是如何運作的

  1. next() 上的執行:
    • 當第一次呼叫next()時,生成器啟動 執行並運行直到第一個yield。
    • 它回傳物件{value,done},其中:
      • value:yield產生的價值。
      • done:一個布林值,指示生成器是否已完成
  2. 暫停和恢復。
    • 函數遇到yield時暫停執行。
    • 當再次呼叫 next() 時,它會從暫停處恢復。
  3. 完成:
    • 當生成器函數完成時,done 屬性變成 是的。

以上是JavaScript 中的生成器函數是什麼?以及它是如何運作的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板