var fibo = (function() { var prev1 = undefined; var prev2 = undefined; return function() { if (prev1 == undefined && prev2 == undefined) { prev1 = 0; return 0; } if (prev1 == 0 && prev2 == undefined) { prev1 = 1; prev2 = 0; return 1; } else { var ret = prev1 + prev2; prev2 = prev1; prev1 = ret; return ret; } }; })(); |
function* getName() { yield "Ted"; yield "Charlotte"; yield "Michael"; yield "Matthew"; } let names = getName(); console.log(names.next().value); console.log(names.next().value); console.log(names.next().value); console.log(names.next().value); console.log(names.next().value); |
function* fibo() { // a generator function yield 0; yield 1; let [prev, curr] = [0, 1]; while (true) { [prev, curr] = [curr, prev + curr]; yield curr; } } for (let n of fibonacci()) { console.log(n); // By the way, this is an infinite stream, so this loop // will never terminate unless you break out of it } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |