我正在学习javascript,如果发现新的概念在函数作为生成器的函数作为新的功能在ES6中
var num=5;
function * x()
{
yield num++;
yield num*=num;
};
x().next()。
{value: 5, done: false}
x().next()。
它应该返回{value: 36, done: false}但返回
{value: 6, done: false} // It Should Return {value: 36, done: false}
每次调用 x()
创建一个 新的 生成器,将从头开始,所以对于
var num=5;
function * x()
{
yield num++;
yield num*=num;
};
console.log(x().next());
console.log(x().next());
基本上等同于做
var num = 5;
console.log(num++);
console.log(num++);
为了得到36,你需要创建一个单一的生成器,然后调用 next()
上,例如
var gen = x();
console.log(gen.next());
console.log(gen.next());