JavaScript中 ES6 生成器的注意事项

生成器:generator。

function *generator(...) {...}

使用星号*就表示这是一个生成器。

不过,生成器并不是iterable,需要使用generator()来构造一个迭代器来供 for ... of 循环迭代。

function *something2() {
  let nextVal;
  while(true) {
    if (nextVal === undefined) {
      nextVal = 1;
    } else {
      nextVal = (3 * nextVal) + 6;
    }
    yield nextVal;
  }
}

for (let v of something2()) {    // 这里是something2() ,而不是something2
  console.log(v);
  if (v > 500) break;
}

// 1 9 33 105 321 969

生成器名字加(),就产生一个迭代器,而 for...of 循环需要的是一个iterable。所以,生成器的迭代器也是一个iterable。

全部评论

相关推荐

小鹏、大疆、米哈游、MinMax小鹏上午投的下午就约面,进度未免也太快了
蛇年行大运fff:哥们 盗贴有意思吗,我发xhs上的给你搬过来了😅😅😅
点赞 评论 收藏
分享
07-15 18:09
门头沟学院 Java
点赞 评论 收藏
分享
07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务