Iterator 接口与 Generator 函数

Symbol.iterator方法的最简单实现,还是使用下一章要介绍的 Generator函数。

  1. var myIterable = {};
  2. myIterable[Symbol.iterator] = function* () {
  3. yield 1;
  4. yield 2;
  5. yield 3;
  6. };
  7. [...myIterable] // [1, 2, 3]
  8. // 或者采用下面的简洁写法
  9. let obj = {
  10. * [Symbol.iterator]() {
  11. yield 'hello';
  12. yield 'world';
  13. }
  14. };
  15. for (let x of obj) {
  16. console.log(x);
  17. }
  18. // hello
  19. // world

上面代码中,Symbol.iterator方法几乎不用部署任何代码,只要用 yield 命令给出每一步的返回值即可。

es6 Iterator 接口与 Generator 函数相关推荐

  1. ES6语法总结(21)--Generator函数的异步应用

    Generator 函数的异步应用 传统方法 基本概念 Generator 函数 Thunk 函数 co 模块 异步编程对 JavaScript 语言太重要.JavaScript 语言的执行环境是&q ...

  2. ES6新特性之Generator函数

    Generator函数 Generator 函数是 ES6 提供的 一种异步编程解决方案,语法行为与传统函数完全不同 . Generator函数有两个特征: 一是 function命令与函数名 之间有 ...

  3. 对于es6的小小理解之generator函数

    相信很多学js的人都看过es6,我也是最近才看的es6标准.下面我来说一下我对es6笼统的看法,如有不对欢迎评论交流. js有很长很长的历史,大家应该都有了解过.es6是15年发布的版本,由TC39主 ...

  4. es6 Generator函数的应用

    Generator函数的应用 es6 Generator 可以暂停函数执行,返回任意表达式的值.这种特点使得 Generator 有多种应用场景. 异步操作的同步化表达 Generator函数的暂停执 ...

  5. “睡服”面试官系列第十八篇之generator函数的语法(建议收藏学习)

    目录 1简介 1.1基本概念 1.2yield 表达式 1.3与 Iterator 接口的关系 2. next 方法的参数 3. for...of 循环 4. Generator.prototype. ...

  6. [ES6] Generator 函数

    [ES6] Generator 函数 Generator 函数与普通函数的区别 执行机制 Generator 函数返回的遍历器对象的方法 循环遍历器 Iterator 对象的方法 next 方法 re ...

  7. 理解 ES6 Generator 函数

    Generator函数是ES6引入的新型函数,用于异步编程,跟Promise对象联合使用的话会极大降低异步编程的编写难度和阅读难度. Generator函数跟普通函数的写法有非常大的区别: 一是,fu ...

  8. es6 中的generator函数控制流程

    Generator函数跟普通函数的写法有非常大的区别: 一是,function关键字与函数名之间有一个星号: 二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是&qu ...

  9. 前端学习笔记(5)-ES6中promise、Generator、Module等使用场景

    1. Promise 一种异步编程的解决方案,通过一个回调,避免更多的回调 异步编程允许我们在执行一个长时间任务时,程序不需要等待,而是继续执行之后的代码,直到这些任务完成之后再来通知你,通常是以回调 ...

最新文章

  1. Android之ListActivity(一):布局与数据绑定
  2. Python同步文件
  3. svg animation应用之-描边效果
  4. Django restframework之Token验证的缺陷及jwt的简单使用
  5. 关于有源晶振倍频干扰的问题
  6. 若依的框架怎么样_基于bootstrapTable的若依框架如何获取表格选中行的整行数据?...
  7. 关于RT-Thread的背景和成长
  8. 服务器批量修改代码,利用Redis实现多服务器批量操作
  9. 【AC军团周报(第一周)第一篇】线段树从入门到入土【1】
  10. 基于python的音频播放器_基于python实现音乐播放器代码实例
  11. 2.算法通关面试 --- 堆栈和队列
  12. Linux -- 在文件中添加信息的方法(转)
  13. [译] Redux vs. React 的 Context API
  14. 关于PV,流量和带宽
  15. 如何制作多合一Windows镜像
  16. linux鸟叔的私房菜txt,鸟哥的Linux私房菜(pdf+epub+mobi+txt+azw3)
  17. 第一次安装和接触RubyonRails
  18. JAVA输出100以内素数
  19. 中国科学院计算机研究生面试,19年中科院信工所考研经验分享【初试+复试】
  20. 定时器 java qua_Quartz定时任务调度机制解析(CronTirgger、SimpleTrigger )

热门文章

  1. 51Nod 1091 线段的重叠(贪心+区间相关,板子题)
  2. v140平台工具集与v110工具集选择
  3. Timestamp 与 Date 变量绑定与Oracle的自动分区
  4. C++ : 自写两个字符串分割函数(含测试程序)
  5. ASP.NET MVC3 学习笔记(一)MVC模式简介
  6. [Android1.6]横竖屏切换时自动弹出键盘的问题
  7. 新浪微博开放平台深度历险
  8. 由replaceAll引发的java.util.regex.PatternSyntaxException错误
  9. 数据传输优化篇之:scp 或 rsync+ssh 参数优化
  10. Linux学习笔记 文件服务Vsftp详细介绍