生成器 (Generator)
- 什么是生成器:
生成器是一个通过构造函数Generator创建的对象,生成器既是一个迭代器,同时又是一个可迭代对象
2.如何创建生成器?
生成器的创建,必须使用生成器函数(Generator Function)
- 如何书写一个生成器函数呢?
要将*
放到函数关键字后面或者函数名前面
function *metod() {
}
function* metod() {
}
{
* metod() {
}
}
//正是一个生成器函数,该函数一定返回一个生成器
- 生成器函数内部是如何执行的?
生成器函数内部是为了给生成器的每次迭代提供的数据
每次调用生成器的next方法,将导致生成器函数运行到下一个yield关键字位置
yield是一个关键字,该关键字只能在生成器函数内部使用,表达“产生”一个迭代数据。
- 有哪些需要注意的细节?
1). 生成器函数可以有返回值,返回值出现在第一次done为true时的value属性中
2). 调用生成器的next方法时,可以传递参数,传递的参数会交给yield表达式的返回值
3). 第一次调用next方法时,传参没有任何意义
4). 在生成器函数内部,可以调用其他生成器函数,但是要注意加上*号
function*