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()
内容会不断更新,欢迎批评指正。

浙公网安备 33010602011771号