GeneratorFunction
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
(en-US) 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 (ECMA-262) Die Definition von 'GeneratorFunction' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser