JavaScript、ES6标准入门、Generator函数。

老弟js基础有点差,看这种代码感觉人被整晕了

function wrapper(generatorFunction) {
  return function (...args) {
    let generatorObject = generatorFunction(...args);
    generatorObject.next();
    return generatorObject;
  };
}

const wrapped = wrapper(function* () {
  console.log(`First input: ${yield}`);
  return 'DONE';
});

wrapped().next('hello!')
// First input: hello!

ES6标准入门 阮一峰 generator函数语法章节代码,给generator函数包一层,使得第一个next方法就可以使用参数.
ES6.ruanyifeng.com原文位置

yield懂,剩余参数也懂.但是...哎~

wrapped就是wrapper return的function对吧.

执行wrapped()就是执行wrapper return的function(...args){},

wrapped执行时没有给参数,所以剩余参数args是undefined.//最后一行wrapped().next('hello!')

执行到generatorObject.next()不就是function*(){//somecode}.next()吗?

有什么不同呢?

特意将自己的错误理解写出来,求路过的大哥指点迷津.
球球了.

阅读 1.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题