- function generator() {
- var i = 0;
- return function() {
- return i++;
- };
- }
- var gen1 = generator(); // 得到一个自然数生成器
- var gen2 = generator(); // 得到另一个自然数生成器
- var r1 = gen1(); // r1 = 0
- var r2 = gen1(); // r2 = 1
- var r3 = gen2(); // r3 = 0
- var r4 = gen2(); // r4 = 1
就是这13行代码,花了我半个小时,说实话。开始想了半天确实不知道怎么回事,后来每个alter()测试,终于发现靠谱了。如果不对请各位读者纠正 ,也让我进步进步。。。初学javascript。
首先第8,9行代码是把generator函数的执行过后返回值赋值给gen1和gen2,所以这个时候gen1应该等于
- function() {
- return i++;
- };