fuckok 2023-11-13 11:58 采纳率: 0%
浏览 16

es6 generator不是必须要有next吗?

es6 genetator函数,这是怎么执行的,不是没有next()没法执行嘛,怎么最后会打印123456?请个明白人给说明下,谢谢

img

  • 写回答

2条回答 默认 最新

  • 不止会JS 2023-11-13 14:37
    关注

    首先,我们要理解生成器的工作原理,生成器实际上是生成了一个可迭代对象,那么什么叫可迭代对象,有迭代器这个属性的对象就叫可迭代对象,那么什么又是迭代器呢,简单来说就是该对象提供了一个方法,你调用这个方法,便可以迭代我,这个方法就是next,所以我们调用next,本质上是在调用生成器函数生成的可迭代对象提供的迭代器方法,那么为什么forof可以直接遍历呢,首先我们在学习forof时一定学习到过forof只能遍历可迭代对象,所以其实forof的本质就是在调用可迭代对象的next,所以你的问题,为什么不需要next,实际上并不是不需要,而是forof的原理就是调用next,他的内部帮你调用了

    评论

报告相同问题?

问题事件

  • 创建了问题 11月13日

悬赏问题

  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持