es6 genetator函数,这是怎么执行的,不是没有next()没法执行嘛,怎么最后会打印123456?请个明白人给说明下,谢谢
es6 generator不是必须要有next吗?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 不止会JS 2023-11-13 14:37关注
首先,我们要理解生成器的工作原理,生成器实际上是生成了一个可迭代对象,那么什么叫可迭代对象,有迭代器这个属性的对象就叫可迭代对象,那么什么又是迭代器呢,简单来说就是该对象提供了一个方法,你调用这个方法,便可以迭代我,这个方法就是next,所以我们调用next,本质上是在调用生成器函数生成的可迭代对象提供的迭代器方法,那么为什么forof可以直接遍历呢,首先我们在学习forof时一定学习到过forof只能遍历可迭代对象,所以其实forof的本质就是在调用可迭代对象的next,所以你的问题,为什么不需要next,实际上并不是不需要,而是forof的原理就是调用next,他的内部帮你调用了
解决 1无用
悬赏问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持