Generator

generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。

和 Python 中的生成器一样,所以算是一次复习。不过由于至今还没有运用过生成器,还不算真正掌握。

用生成器写一个计数器

function* create_counter(max) {
    var id = 0;
    while (id < max) yield id++;
}

a = create_counter(5) // create_counter {[[GeneratorStatus]]: "suspended"}
a.next() // {value: 0, done: false}
a.next() // {value: 1, done: false}
a.next() // {value: 2, done: false}
...
a.next() // {value: 4, done: true}

我们也可以利用 for of 语句来循环调用这个函数

for (var i of create_counter(5)) {
    console.log(i);
}

//0
//1
//2
//3
//4
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容