ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptのジェネレーター関数とは何ですか?そしてそれはどのように機能するのでしょうか?

JavaScriptのジェネレーター関数とは何ですか?そしてそれはどのように機能するのでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-31 18:47:11474ブラウズ

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,ned} を返します。ここで:
      • value: yield によって生成された値。
      • 完了: ジェネレーターが完了したかどうかを示すブール値
  2. 一時停止と再開。
    • 関数は、yield が発生すると実行を一時停止します。
    • 再度 next() を呼び出すと一時停止した状態から再開します。
  3. 完了:
    • ジェネレーター関数が完了すると、done プロパティは次のようになります。 本当です。

以上がJavaScriptのジェネレーター関数とは何ですか?そしてそれはどのように機能するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Toolzr の構築方法次の記事:Toolzr の構築方法