欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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循环会自动调用这个遍历器。