生成器 Function*

function* 声明定义一个 generator( 生成器), 返回一个 Generator 对象

语法

function* name([param[, param[, ...param]]]){ statements }
`</pre>

### 描述

Generator 是一种可以从中退出并在之后重新进入的函数, 其环境(绑定的变量)会在每次执行后被保存, 下次进入时可以继续使用

调用一个 Generator 并不马上执行它的主体, 而是返回一个 迭代器对象, 这个迭代器的 next() 方法被调用的时候, Generator 的主体会被执行至下一个 yield 表达式, 该表达式定义了迭代器的返回值

### 示例

<pre>`function* idMaker(){
  var index = 0;
  while(index &lt; 3){
    yield index++;
  }
}

var gen = idMaker(); //返回一个迭代器对象

console.log(gen().next().value); // 0
console.log(gen().next().value); // 1
console.log(gen().next().value); // 2
console.log(gen().next().value); // undefined

谨慎使用, 因为其内部变量保持变化, 要每次输出的相互影响

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×