第二个收益在JavaScript生成器函数中不起作用

我正在学习javascript,如果在函数中发现新概念作为生成器函数作为ES6中的新功能


var num=5;

function * x()

   yield num++;

   yield num*=num; 

};

x().next();


{value: 5, done: false}

x().next();


它应该返回{值:36,完成:假},但返回


{value: 6, done: false} // It Should Return {value: 36, done: false}


料青山看我应如是
浏览 105回答 1
1回答

天涯尽头无女友

每次调用都会创建一个新的生成器,该生成器将从头开始,因此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());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript