ES6 生成器 / 迭代器

生成器

yield

function * xxx() {
  yield Promise.resolve('海胆')
  yield '海星'
}

.next() 每次访问一个 yield
在这里插入图片描述

迭代器

Symbol.iterator 对可便利对象创建一个迭代器
通过.next() 方法向下迭代

{
  value:当前元素值,
  done:true/false // 是否到达最后
}

调用 迭代器 实现遍历
在这里插入图片描述
valueSymbol.iterator 获取迭代器并调用

for of 迭代器语法糖

== 一般对象(没有迭代器)不能用 for of==
但可以自定义实现迭代器
在这里插入图片描述
在这里插入图片描述

解构 和 数组... 的底层原理也是调用 Symbol.iterator()
对象解构不是调用 Symbol.iterator()

posted @   海胆Sur  阅读(7)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示