迭代器与iterable

最近在学习ES6,有两个概念一直纠缠不清,就是迭代器与iterable,查阅了一些资料,简单来说迭代器就是包含next方法的对象,而iterable是包含可以在其值上迭代的迭代器的对象,但它必须支持一个函数,其名称是专门的ES6符号值 Symbol.iterator,简单来说就是iterable要包含一个Symbol.iterator方法,上代码吧:

var iterator = {
next() {
return {
done: false,
value: 'Love xia'
};
}
};

如上便是一个实现了标准迭代器接口的迭代器,需要说明的是迭代器不可for of遍历。

var iterable = {
[Symbol.iterator]() {
return this;
}
};

上面是一个iterable,虽然毫无意义,我的理解就是拥有Symbol.iterator就拥有了资格,至于这个方法返回什么并不重要,为了有意义我们要返回迭代器,如下:

var iterable = {
[Symbol.iterator]() {
return {
next() {
return {
value: 'Love xia',
done: Math.random() > 0.7
}
}
};
}
};

最后我们来做一个即是迭代器又是iterable的对象来总结一下:

var it = {
[Symbol.iterator]() {
return this;
},
next() {
return {
value: 'Love xia',
done: false
};
}
};

理解有误的地方还请不吝指出。

最新文章

  1. 学习android 官方文档
  2. zoj Abs Problem
  3. 【Python】网络编程
  4. ios中@class和 #import,两种方式的讨论
  5. git workflows
  6. [Python 3.x 官方文档翻译]Whetting Your Appetite 欢迎您的使用
  7. 使用.net core在Ubuntu构建一个TCP服务器
  8. 关于在UNIcode环境下得TCHAR转string类型以及string转TCHAR
  9. Android开发 MVP模式的规范记录(个人总结)
  10. 002_浅析python 中__name__ = '__main__' 的作用
  11. ALGO-145_蓝桥杯_算法训练_4-1打印下述图形
  12. js 选项卡制作
  13. log4j介绍和使用
  14. NTT+多项式求逆
  15. ps -a,job,netstat,daemons
  16. HCNP - Server
  17. 点滴积累【JS】---JS实现仿百度模糊搜索效果
  18. UASCO Wormholes 解析 and C 语言实现
  19. TortoiseGit使用入门
  20. App Store App申请审核加速

热门文章

  1. docker和Dockerfile
  2. jquery设置css属性几种方式
  3. 【CF521C】Pluses everywhere(贡献)
  4. jQuery_复制操作
  5. 删除全局安装的npm包
  6. 数据预测算法-ARIMA预测
  7. oracle判断一个字段为空
  8. Java常考面试题整理(四)
  9. C++入门经典-例3.22-循环嵌套打印三角形
  10. c++匿名函数精简写法