Iterator.prototype[Symbol.iterator]()
åºçº¿
广æ³å¯ç¨
èª 2016å¹´9æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Iterator å®ä¾ç [Symbol.iterator]() æ¹æ³å®ç°äºå¯è¿ä»£åè®®ï¼å¹¶å
许å
ç½®è¿ä»£å¨è¢«å¤§å¤æ°ææå¯è¿ä»£å¯¹è±¡çè¯æ³ææ¶è´¹ï¼å¦å±å¼è¯æ³å for...of 循ç¯ãå®è¿å this çå¼ï¼å³è¿ä»£å¨å¯¹è±¡æ¬èº«ã
è¯æ³
js
iterator[Symbol.iterator]()
åæ°
æ ã
è¿åå¼
this çå¼ï¼å³è¿ä»£å¨å¯¹è±¡æ¬èº«ã
示ä¾
>ä½¿ç¨ for...of 循ç¯è¿è¡è¿ä»£
请注æï¼ä½ å¾å°éè¦ç´æ¥è°ç¨è¿ä¸ªæ¹æ³ã[Symbol.iterator]() æ¹æ³çåå¨ä½¿å
ç½®è¿ä»£å¨æä¸ºå¯è¿ä»£å¯¹è±¡ï¼èå for...of 循ç¯è¿æ ·çè¿ä»£è¯æ³ä¼èªå¨è°ç¨è¿ä¸ªæ¹æ³æ¥è·åç¨äºè¿è¡å¾ªç¯çè¿ä»£å¨ã
js
const arrIterator = [1, 2, 3].values();
for (const value of arrIterator) {
console.log(value);
}
// è¾åºï¼1ã2ã3
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-%iteratorprototype%-%symbol.iterator%> |