目录
生成器声明
生成器本质也是函数,函数名称前面加一个星号(*)表示它是一个生成器,标识生成器函数的星号不受两侧空格的影响。
调用生成器函数会生成 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