【发布时间】:2018-10-11 23:37:27
【问题描述】:
class List{
constructor(){
this.data = [1,2,3];
}
[Symbol.iterator](){
return this.data;
}
}
let list = new List();
for(let i of list)
console.log(i);
for() 行中的错误:
Uncaught TypeError: undefined is not a function
所以不能像 PHP 那样在我们自己的类中使用迭代器?
【问题讨论】:
-
我认为你需要返回一个迭代器,而不是一个可迭代的——
return this.data[Symbol.iterator]() -
我用
*[Symbol.iterator](){ for(let i of this.data) yield i; }修复了它
标签: javascript iterator