'use strict'
function* fib(max) {
var
a = 0,
b = 1,
n = 0;
while (n < max) {
console.log(".........1.........");
yield a;
console.log(".........2.........");
[a, b] = [b, a + b];
console.log(".........3.........");
n++;
console.log(".........4.........");
}
return;
}
for (var x of fib(10)) {
console.log(x); // 依次输出0, 1, 1, 2, 3, ...
}
OUTPUT
[Running] node "d:\JS_practice\test1.js"
.........1.........
0
.........2.........
.........3.........
.........4.........
.........1.........
1
.........2.........
.........3.........
.........4.........
.........1.........
1
.........2.........
.........3.........
.........4.........
.........1.........
2
.........2.........
.........3.........
.........4.........
.........1.........
3
.........2.........
.........3.........
.........4.........
.........1.........
5
.........2.........
.........3.........
.........4.........
.........1.........
8
.........2.........
.........3.........
.........4.........
.........1.........
13
.........2.........
.........3.........
.........4.........
.........1.........
21
.........2.........
.........3.........
.........4.........
.........1.........
34
.........2.........
.........3.........
.........4.........