Baseline 2025
Newly available
å®éªæ§: è¿æ¯ä¸é¡¹å®éªæ§ææ¯
å¨å°å
¶ç¨äºç产ä¹åï¼è¯·ä»ç»æ£æ¥æµè§å¨å
¼å®¹æ§è¡¨æ ¼ã
Iterator.from()
éææ¹æ³ä»è¿ä»£å¨æå¯è¿ä»£å¯¹è±¡å建ä¸ä¸ªæ°ç Iterator
对象ã
妿 object
æ¯ä¸ä¸ªå¯è¿ä»£å¯¹è±¡ï¼åä¼è°ç¨å
¶ [Symbol.iterator]()
以è·åè¿ä»£å¨ãå¦åï¼object
å°è¢«è§ä¸ºä¸ä¸ªè¿ä»£å¨ãå¦æè¯¥è¿ä»£å¨ç
ç»æä¸ºçï¼è¿æå³çå®å¨ååé¾ä¸æ instanceof
Iterator
Iterator.prototype
ï¼ï¼åç´æ¥è¿åå®ãå¦åï¼å建ä¸ä¸ªå
è£
äºåå§è¿ä»£å¨çæ° Iterator
对象ã
è¿ä¸ªæ¹æ³çå卿¯ä¸ºäºå°èªå®ä¹è¿ä»£å¨ï¼å¯è½æ¯ç±åºå¯¼åºçï¼è½¬æ¢ä¸ºæ°å½çè¿ä»£å¨ãææç± Iterator.from()
è¿åçè¿ä»£å¨å¯¹è±¡é½ç»§æ¿èªä¸ä¸ªå
Œ
±åå对象ï¼è¯¥å¯¹è±¡å
·æä»¥ä¸æ¹æ³ï¼
next()
è°ç¨åºå±è¿ä»£å¨ç next()
æ¹æ³å¹¶è¿åç»æã
return()
è°ç¨åºå±è¿ä»£å¨ç return()
æ¹æ³å¹¶è¿åç»æï¼å¦æåºå±è¿ä»£å¨æ²¡æ return()
æ¹æ³ï¼åè¿å { value: undefined, done: true }
ã
å 为 obj
å·²ç»æ¯ä¸ä¸ªå¯è¿ä»£å¯¹è±¡ï¼å¹¶ä¸å
¶ [Symbol.iterator]()
æ¹æ³è¿åäºä¸ä¸ªæ°å½çè¿ä»£å¨ï¼æä»¥ Iterator.from(obj)
è¿åçè¿ä»£å¨ä¸ obj
ç¸åã
const iterator = (function* () {
yield 1;
yield 2;
yield 3;
})();
const obj = {
[Symbol.iterator]() {
return iterator;
},
};
const iterator2 = Iterator.from(obj);
console.log(iterator2 === iterator); // true
å 为 obj2
æ¯ä¸ä¸ªå¯è¿ä»£å¯¹è±¡ï¼å
¶ [Symbol.iterator]()
æ¹æ³è¿åäºä¸ä¸ªéæ°å½çè¿ä»£å¨ï¼æä»¥ Iterator.from(obj2)
è¿åä¸ä¸ªå
è£
äºåå§è¿ä»£å¨çæ°è¿ä»£å¨ã
const iterator = {
current: 0,
next() {
return { value: this.current++, done: false };
},
};
const obj2 = {
[Symbol.iterator]() {
return iterator;
},
};
const iterator2 = Iterator.from(obj2);
console.log(iterator2 === iterator); // false
console.log(iterator2.next()); // { value: 0, done: false }
console.log(iterator.next()); // { value: 1, done: false }
å°è¿ä»£å¨è½¬æ¢ä¸ºæ°å½çè¿ä»£å¨
å 为 obj
å·²ç»æ¯ä¸ä¸ªæ°å½çè¿ä»£å¨ï¼æä»¥ Iterator.from(obj)
è¿å宿¬èº«ã
const obj = (function* () {
yield 1;
yield 2;
yield 3;
})();
const iterator = Iterator.from(obj);
console.log(iterator === obj); // true
å 为 obj2
æ¯ä¸ä¸ªéæ°å½çè¿ä»£å¨ï¼æä»¥ Iterator.from(obj2)
è¿åä¸ä¸ªå
è£
äºåå§è¿ä»£å¨çæ°è¿ä»£å¨ã
const obj2 = {
current: 0,
next() {
return { value: this.current++, done: false };
},
};
const iterator = Iterator.from(obj2);
console.log(iterator === obj2); // false
console.log(iterator.next()); // { value: 0, done: false }
console.log(obj2.next()); // { value: 1, done: false }
è§è æµè§å¨å
¼å®¹æ§ åè§
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