← 返回首页
GeneratorFunction - JavaScript | MDN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

GeneratorFunction

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2016年9月以降、すべてのブラウザーで利用可能です。

GeneratorFunction オブジェクトは、ジェネレーター関数のメソッドを提供します。JavaScript では、すべてのジェネレーター関数は実際には GeneratorFunction オブジェクトです。

GeneratorFunction はグローバルオブジェクトではないことに注意してください。次のコードを評価することによって得ることができます。

js
const GeneratorFunction = function* () {}.constructor;

GeneratorFunction は Function のサブクラスです。

目次

試してみましょう

const GeneratorFunction = function* () {}.constructor; const foo = new GeneratorFunction(` yield 'a'; yield 'b'; yield 'c'; `); let str = ""; for (const val of foo()) { str += val; } console.log(str); // 予想される結果: "abc"

コンストラクター

GeneratorFunction()

新しい GeneratorFunction オブジェクトを生成します。

インスタンスプロパティ

親である Function から継承したプロパティもあります

これらのプロパティは GeneratorFunction.prototype で定義されており、すべての GeneratorFunction インスタンスで共有されます。

GeneratorFunction.prototype.constructor

インスタンスオブジェクトを作成するコンストラクター関数です。GeneratorFunction インスタンスの場合、初期値は GeneratorFunction コンストラクターです。

GeneratorFunction.prototype.prototype

すべてジェネレーター関数は、同じ prototype プロパティを共有しており、これは Generator.prototype です。 function* 構文または GeneratorFunction() コンストラクターで生成されたそれぞれのジェネレーター関数も、自身の prototype プロパティを保有しています。このプロパティのプロトタイプは GeneratorFunction.prototype.prototype です。ジェネレーター関数が呼び出されると、その prototype プロパティが返されるジェネレータオブジェクトのプロトタイプとなります。

GeneratorFunction.prototype[Symbol.toStringTag]

[Symbol.toStringTag] プロパティの初期値は文字列 "GeneratorFunction" です。このプロパティは Object.prototype.toString() で使用されています。

これらのプロパティは、それぞれのGeneratorFunctionインスタンスが自分自身で持っているプロパティです。

prototype

関数が new 演算子と共にコンストラクターとして使用される場合に使用されます。新しいオブジェクトのプロトタイプとなります。

インスタンスメソッド

親である Function から継承したメソッドがあります

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-generatorfunction-objects

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報