2.5JavaScript语言的生成器(Generator)

生成器声明

生成器本质也是函数,函数名称前面加一个星号(*)表示它是一个生成器,标识生成器函数的星号不受两侧空格的影响。

调用生成器函数会生成 Generator 对象,与迭代器相似,Generator 也实现了 Iterator 接口。

注意:箭头函数不能用来定义生成器函数。

//生成器函数声明定义法
function* name() {
}
function *name() {}
function * name() {}
//生成器函数表达式定义法
let function_expression = function* [name]() {
};
//对象字面量方法
* name() {}
//类静态方法
static * name() {}
//类实例方法
* name() {}

yield

yield 关键字多次用来暂停和恢复一个生成器函数,它可以被认为是一个基于生成器的版本的return关键字。

注意:同一个生成器函数内部可以同时出现yield和return。

function* name() {
    yield [表达式];
}

yield*

yield* 表达式用于委托给另一个生成器 或 可迭代对象。

与生成器类似,yield 星号不受两侧空格的影响。

function* name() {
    yield* 表达式;
}

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/12808.html

(0)
上一篇 2020年9月5日 15:50
下一篇 2020年9月6日 06:50

相关推荐

发表评论

登录后才能评论