GeneratorFunction
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since ÑенÑÑбÑÑ 2016 г..
ÐбÑÐµÐºÑ GeneratorFunction пÑедоÑÑавлÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ ÑÑнкÑиÑми-генеÑаÑоÑами. Ð JavaScript ÐºÐ°Ð¶Ð´Ð°Ñ ÑÑнкÑиÑ-генеÑаÑÐ¾Ñ ÑакÑиÑеÑки ÑвлÑеÑÑÑ Ð¾Ð±ÑекÑом GeneratorFunction.
ÐбÑаÑиÑе внимание, GeneratorFunction не ÑвлÑеÑÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑм обÑекÑом. Ðн Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑен ÑледÑÑÑим обÑазом:
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 = str + val;
}
console.log(str);
// Expected output: "abc"
ÐонÑÑÑÑкÑоÑ
GeneratorFunction()-
СоздаÑÑ Ð½Ð¾Ð²Ñй обÑекÑ
GeneratorFunction.
СвойÑÑва ÑкземплÑÑа
Также наÑледÑÐµÑ ÑвойÑÑва Ñвоего ÑодиÑÐµÐ»Ñ Function.
ÐÑи ÑвойÑÑва опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² GeneratorFunction.prototype и еÑÑÑ Ñ Ð²ÑеÑ
ÑкземплÑÑов GeneratorFunction.
GeneratorFunction.prototype.constructor-
ФÑнкÑиÑ-конÑÑÑÑкÑоÑ, ÑоздаÑÑÐ°Ñ ÑкземплÑÑ Ð¾Ð±ÑекÑа. ÐÐ»Ñ ÑкземплÑÑов
GeneratorFunctionнаÑалÑнÑм знаÑением ÑвлÑеÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑGeneratorFunction. GeneratorFunction.prototype.prototype-
ÐÑе ÑÑнкÑии-генеÑаÑоÑÑ Ð¸Ð¼ÐµÑÑ Ð´Ð¾ÑÑÑп к обÑÐµÐ¼Ñ ÑвойÑÑвÑ
prototype, знаÑением коÑоÑого ÑвлÑеÑÑÑGenerator.prototype. ÐаждÑй ÑкземплÑÑ ÑÑнкÑии-генеÑаÑоÑа Ñакже Ð¸Ð¼ÐµÐµÑ ÑобÑÑвенное ÑвойÑÑвоprototype. ÐÑи вÑзове ÑÑнкÑии-генеÑаÑоÑа возвÑаÑаеÑÑÑ Ð¾Ð±ÑÐµÐºÑ Ð³ÐµÐ½ÐµÑаÑоÑа, наÑледÑемÑй Ð¾Ñ ÑвойÑÑваprototypeÑÑнкÑии-генеÑаÑоÑа, коÑоÑÐ°Ñ Ð² ÑÐ²Ð¾Ñ Ð¾ÑеÑÐµÐ´Ñ Ð½Ð°ÑледÑеÑÑÑ Ð¾ÑGeneratorFunction.prototype.prototype. GeneratorFunction.prototype[@@toStringTag]-
ÐаÑалÑнÑм знаÑением ÑвойÑÑва
@@toStringTagÑвлÑеÑÑÑ ÑÑÑока"GeneratorFunction". ÐÑо ÑвойÑÑво иÑполÑзÑеÑÑÑ Ð²Object.prototype.toString().
ÐеÑÐ¾Ð´Ñ ÑкземплÑÑа
ÐаÑледÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ Ñвоего ÑодиÑÐµÐ»Ñ Function.
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-generatorfunction-objects> |