几个点,一个是生成器 https://developer.mozilla.org/… 另外一个是闭包
function fibo() {
var a = 0;
var b = 1;
function gen() {
var res = (a < b) ? a : b;
if (a < b) {
a = a + b;
} else {
b = a + b;
}
return res;
}
return gen;
}
var fibogen = fibo();
for (var i = 1; i < 10; i++) {
console.log(fibogen());
}
输出如下
0 2 1 2 3 5 8 13 21
那如果不用闭包呢,那就是上面贴的那个文章的里面的 yield 了
==============
2017-3-15 20:50:03 一个更简单的
function fibo() {
var a = 0;
var b = 1;
function gen() {
var res = a;
a = b;
b = res + b;
return res;
}
return gen;
}
var fibogen = fibo();
for (var i = 1; i < 10; i++) {
console.log(fibogen());
}