function* 这种声明方式(function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个Generator 对象

示例:

 function* generator(x) {
console.log('x', x);
let a = yield x;
console.log('a', a);
let b = yield (x + 1) + a;
console.log('b',b);
yield a + b;
console.log('a + b =', a + b);
return a + b;
}
generator(10);
let g = generator(10);
console.log(g.next());
console.log(g.next(1000).value);
console.log(g.next(50));
console.log(g.next());

执行结果

x 10
{ value: 10, done: false }
a 1000
1011
b 50
{ value: 1050, done: false }
a + b = 1050
{ value: 1050, done: true }

a和b为迭代器(iterator)对象,迭代器对象的值取决于next方法,所以返回值为1050

最新文章

  1. js 无缝滚动效果学习
  2. .Net中的加密解密
  3. 状态压缩 CSU1129 送货到家
  4. WEB前端开发和调试的工具
  5. jQuery1.11源码分析(6)-----jQuery结构总揽
  6. css3 怎么实现像书籍装订线的效果
  7. PostgreSQL的 initdb 源代码分析之十五
  8. android 开发环境搭建 (转)
  9. Windows 8 Cython 的配置(解决Unable to find vcvarsall.bat问题)
  10. AUTOSAR的前期开源实现Arctic Core
  11. 将markdown文档使用gulp转换为HTML【附带两套css样式】
  12. cropper截图不压缩PHP上传裁剪后的图片
  13. 使用Python启动一个简单的服务器
  14. topcoder srm 335 div1
  15. [Python_2] Python 基础
  16. 字节码分析finally块对return返回值的影响
  17. 原生js实现一个DIV的碰撞反弹运动,并且添加重力效果
  18. java算法小例子
  19. 学习stylus笔记
  20. Postfix的工作原理

热门文章

  1. 在学react时候找不到static/js/bundle.js
  2. java虚拟机规范(se8)——class文件格式(四)
  3. Groovy学习:第五章 学习回顾groovy
  4. kubernetes(k8s)容器集群管理
  5. 获取模糊匹配的div id属性
  6. 2018-2-22-在-windows-安装-Jekyll
  7. 服务器修改静态ip
  8. Makefile总结(转帖)
  9. Qt + VS【无法打开xxx文件】
  10. c++使用不定参数