Der GeneratorFunction Konstruktor erstellt eine neues Generator Funktion Objekt. aktuell ist in JavaScript jede Generatorfunktion ein GeneratorFunction Objekt.

Zu beachten ist, dass GeneratorFunction kein globales Objekt ist. Es kann mit folgendem Quelltext erhalten werden.

Object.getPrototypeOf(function*(){}).constructor

Syntax

new GeneratorFunction ([arg1[, arg2[, ...argN]],] functionBody)

Parameters

arg1, arg2, ... argN
Namen für Formale Argumente der Funktion. Jeder muss ein String sein, der mit einem validen JavaScript-Bezeichner korrespondiert oder eine liste von solchen String, welche mit einem Komma getrennt sind; zum Beispiel "x", "theValue", oder "a,b"
functionBody
Ein String, welcher die Statements für die Funktionsdefinition enthält.

Beschreibung

Generator Funktion Objekte, die mit dem GeneratorFunction Konstruktor erstellt werden übersetzt, wenn die Funktion erstellt wird. Das ist weniger effizient als die Erstellung mit einer function* Ausdruck und Aufrufe im Quelltext, weil solche Funktionen dem dem Rest des Quelltextes übersetzt werden.

Alle Argumente, die der Funktion übergeben werden, werden als Namen der Bezeichner behandelt und werden als Parameter der Funktion übergen. Die Reihenfolge ist die angegebene Reihenfolge.

Hinweis: Generator Function, die mit dem GeneratorFunction Konstruktor erstellt werden erstellen keine Closures im Erstellungskontext. Sie werden immer im globalen Sichtbarkeitsbereich erstellt. Wenn diese ausgeführt werden, haben sie nur Zugriff auf eigene lokale Variablen und globale Variablen, jedoch nicht auf Variablen des Scopes, in der GeneratorFunction Konstruktor aufgerufen wird. Dieses unterscheidet diese Methode von eval mit dem Quelltext einer Generatorfunktion.

Das Aufrufen des GeneratorFunction Konstruktors als Funktion (ohne Einsatz des new Operator) hat den selben Effekt wie beim Aufruf als Konstruktor.

Eigenschaften

GeneratorFunction.length
Die Länge des GeneratorFunction Konstruktor Eigenschaft, welche 1 ist.
GeneratorFunction.prototype
Erlaubt das Hinzufügen von Eingenschaften für alle Generatorfunktionsobjekte.

GeneratorFunction Prototyp Objekt

Eigenschaften

GeneratorFunction.constructor
Der initiale Wert von GeneratorFunction.
GeneratorFunction.prototype.prototype
Der Wert ist %GeneratorPrototype%.

GeneratorFunction Instanzen

GeneratorFunction Instanzen erben Methoden und Eigenschaften von GeneratorFunction.prototype. Wie bei allen Konstruktoren, kann man das Konstruktor Prototyp Objekt ändern, um diese für alle GeneratorFunction Instanzen zu übernehmen.

Beispiele

Erstellen einer Generatorfunktion mit einem GeneratorFunction Konstruktor

var GeneratorFunction = Object.getPrototypeOf(function*(){}).constructor
var g = new GeneratorFunction('a', 'yield a * 2');
var iterator = g(10);
console.log(iterator.next().value); // 20

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'GeneratorFunction' in dieser Spezifikation.
Standard Initiale Definition.
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'GeneratorFunction' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidEdge MobileFirefox für AndroidOpera für AndroidiOS SafariSamsung InternetNode.js
Grundlegende UnterstützungChrome Vollständige Unterstützung JaEdge Vollständige Unterstützung JaFirefox Vollständige Unterstützung 26IE Keine Unterstützung NeinOpera Vollständige Unterstützung JaSafari ? WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaEdge Mobile ? Firefox Android Vollständige Unterstützung 26Opera Android ? Safari iOS ? Samsung Internet Android Vollständige Unterstützung Janodejs ?
prototypeChrome Vollständige Unterstützung JaEdge Vollständige Unterstützung JaFirefox Vollständige Unterstützung 26IE Keine Unterstützung NeinOpera Vollständige Unterstützung JaSafari ? WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaEdge Mobile ? Firefox Android Vollständige Unterstützung 26Opera Android ? Safari iOS ? Samsung Internet Android Vollständige Unterstützung Janodejs ?

Legende

Vollständige Unterstützung  
Vollständige Unterstützung
Keine Unterstützung  
Keine Unterstützung
Kompatibilität unbekannt  
Kompatibilität unbekannt

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Mitwirkende an dieser Seite: schlagi123, fscholz
Zuletzt aktualisiert von: schlagi123,