ES6的generator
generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。 1、generator函数的定义是function*,这与普通函数是不同的 2、yield需使用在generator函数中,所表示的意思是“执行到这,并返回” 3、yield是有返回值的,其中value代表return的值,done代表函数是否执行结束。 yield 'your value'; // { value: 'your value', done: true } yield; // { value: undefined, done: true } generator跟函数很像,定义如下: function* foo(x) { yield x + 1; yield x + 2; return x + 3; } generator和函数不同的是,generator由 function* 定义(注意多出的 * 号),并且,除了 return 语句,还可以用 yield 返回多次。用处:可以编写一个产生斐波那契数列的函数: function* fib(max) { var t, a = 0, b = 1, n = 0; while (n < max) { yield a; [a, b] = [b, a + b]; n ++; } return; }fib(5)