es6 Class的Generator函数实例讲解
程序员文章站
2022-07-05 22:38:24
Class 的 Generator函数
如果某个方法之前加上星号(*),就表示该方法是一个 Generator函数。
class Foo {
construct...
Class 的 Generator函数
如果某个方法之前加上星号(*),就表示该方法是一个 Generator函数。
class Foo {
constructor(...args) {
this.args = args;
}
* [Symbol.iterator]() {
for (let arg of this.args) {
yield arg;
}
}
}
for (let x of new Foo('hello', 'world')) {
console.log(x);
}
// hello
// world
上面代码中,ES6
Foo类的Symbol.iterator方法前有一个星号,表示该方法是一个 Generator函数。Symbol.iterator方法返回一个Foo类的默认遍历器,for...of循环会自动调用这个遍历器。