【发布时间】:2019-07-24 16:31:49
【问题描述】:
如here 所述,所有 ES6 迭代器都是可迭代的(因此,您可以向它们申请 for-of 等)。
考虑到以下简短的演示,我试图弄清楚为什么我不能迭代 it 并且我得到 TypeError: it is not iterable 错误。
var counter ={
[Symbol.iterator](){
var start=0, end=10, step=1;
var current = start;
return {
next(){
var done = current > end;
if(done) return {value: undefined, done: true};
var res = {value: current, done: false};
current += step;
return res;
}
}
}
}
var it = counter[Symbol.iterator]();
for(let t of it){
console.log(t)
}
感谢任何帮助。
【问题讨论】:
-
for(let t of counter) ...或者你添加return { [Symbol.iterator](){ return this }, next(){...}}。 -
我想知道迭代器是如何可迭代的。
标签: javascript ecmascript-6 iterator