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å¹´9æ.
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 += 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ã¤ã³ã¹ã¿ã³ã¹ãèªåèªèº«ã§æã£ã¦ããããããã£ã§ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
親ã§ãã Function ããç¶æ¿ããã¡ã½ãããããã¾ãã
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-generatorfunction-objects> |