1、Generator函数的特征
- function关键字与函数名之间有一个星号;
- 函数体内部使用yield语句,定义不同的内部状态
2、生成器函数与普通函数调用方法一样,不同的是,调用生成器函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,即遍历器对象;
3、next方法用于取出Generator函数中的值;
4、每次调用next方法,内部指针就从函数头部或上一次停下来的地方开始执行,直到遇到下一个yield语句或return语句为止(即Generator函数是分段执行的,yield语句是暂停执行的标记,而next方法可以恢复执行);
5、每次调用遍历器对象的next方法,就会返回一个有着value和done两个属性的对象。value属性表示当前的内部状态的值,是yield语句后面那个表达式的值;done属性是一个布尔值,表示是否遍历结束。
6、yield*
语句,用来在一个Generator函数里面执行另一个Generator函数