Baseline Widely available
Generator
对象ç±çæå¨å½æ°è¿åå¹¶ä¸å®ç¬¦åå¯è¿ä»£åè®®åè¿ä»£å¨åè®®ã
Generator
æ¯éèç±» Iterator
çåç±»ã
const foo = function* () {
yield "a";
yield "b";
yield "c";
};
let str = "";
for (const val of foo()) {
str = str + val;
}
console.log(str);
// Expected output: "abc"
æé 彿°
Generator
æé 彿°å¹¶ä¸æ¯å
¨å±å¯ç¨çãGenerator
çå®ä¾å¿
é¡»ä»çæå¨å½æ°è¿åï¼
function* generator() {
yield 1;
yield 2;
yield 3;
}
const gen = generator(); // "Generator { }"
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // 3
å®é
ä¸ï¼å¹¶æ²¡æå¯¹åº Generator
æé 彿°ç JavaScript å®ä½ãåªæä¸ä¸ªéè对象ï¼å
¶æ¯ææç±çæå¨å½æ°å建ç对象æå
±äº«çåå对象ãè¿ä¸ªå¯¹è±¡éå¸¸è¢«é£æ ¼å为 Generator.prototype
æ¥ä½¿å
¶çèµ·æ¥åæ¯ä¸ä¸ªç±»ï¼ä½å®æ´æ°å½çç§°å¼åºè¯¥æ¯ GeneratorFunction.prototype.prototype
ï¼å 为 GeneratorFunction
æ¯ä¸ä¸ªå®é
ç JavaScript å®ä½ã
è¿äºå±æ§å®ä¹äº Generator.prototype
å¹¶ç±ææ Generator
å®ä¾æå
±äº«ã
Generator.prototype.constructor
å建å®ä¾å¯¹è±¡çæé 彿°ãå¯¹äº Generator
å®ä¾ï¼å
¶åå§å¼æ¯ GeneratorFunction.prototype
ã
夿³¨ï¼ Generator
对象ä¸ä¼åå¨å建å®ä»¬ççæå¨å½æ°çå¼ç¨ã
Generator.prototype[Symbol.toStringTag]
[Symbol.toStringTag]
屿§çåå§å¼æ¯å符串 "Generator"
ãè¯¥å±æ§è¢« Object.prototype.toString()
使ç¨ã
åæ¶ä¹ä»å
¶ç¶ç±» Iterator
ç»§æ¿å®ä¾æ¹æ³ã
Generator.prototype.next()
è¿å yield
表达å¼çæçå¼ã
Generator.prototype.return()
类似äºå¨å½åççæå¨ä¸»ä½çæåä½ç½®æå
¥ return
è¯å¥ï¼è¯¥è¯å¥ç»æäºçæå¨å¹¶ä¸å
许çæå¨ä¸ try...finally
åç¸ç»åæ¶ï¼æ§è¡ä»»ä½æ¸
çä»»å¡ã
Generator.prototype.throw()
类似äºå¨å½åççæå¨ä¸»ä½çæåä½ç½®æå
¥ throw
è¯å¥ï¼è¯¥è¯å¥éç¥çæå¨æé误çæ
åµå¹¶ä¸å
许å
¶å¤çéè¯¯ææ§è¡æ¸
çå¹¶èªè¡å
³éã
éè¿çæå¨å½æ°ï¼å¼åªæå¨å ¶è¢«éè¦æ¶æä¼è¿è¡è®¡ç®ãå æ¤ï¼çæå¨å 许æä»¬å®ä¹ä¸ä¸ªæ½å¨çæ ç©·æ°æ®ç»æã
function* infinite() {
let index = 0;
while (true) {
yield index++;
}
}
const generator = infinite(); // "Generator { }"
console.log(generator.next().value); // 0
console.log(generator.next().value); // 1
console.log(generator.next().value); // 2
// â¦
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4