几个点,一个是生成器 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()); }