next()方法是哪里来的?

next()方法是哪里来的?

https://img1.sycdn.imooc.com//climg/614dee8009a1e2aa05830699.jpg

对象原本没有Symbol.iterator方法,在自定义的箭头函数中为什么还会出现一个next()方法?还有为什么能直接调用这个next()方法?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2021-09-25 10:08:34

同学你好,对于你的问题解答如下:

1、next方法是在自定义箭头函数中return返回的对象中新声明的方法,注意:必须将方法命名为next,具体参考第二条解释。

2、因为使用for...of语法遍历obj对象,js底层代码在执行时,默认会调用obj这个对象的上Symbol.iterator方法中的next方法完成遍历。

视频中讲师介绍Symbol.iterator,主要是让同学们进一步理解for...of的遍历原理,对于Symbol.iterator了解下即可,实际开发中更多的是直接使用for...of遍历。

祝学习愉快~


  • 老师next方法不是在对象里没有吗,为什么不这样写function next()

    2024-02-26 20:55:23
  • 同学你好,解答如下:

    因为同学问的很底层,如下解答同学可以当做一个参考,这里涵盖了的知识点是迭代协议与迭代器。

    1、next方法本身是有的,它是被作为迭代协议的其中一个方法,也就是说当迭代协议与next方法结合才能被称为迭代器。

    2、不能,在官方的定义中此类的例子它只能是这样书写。

    同学如有兴趣可以看看官方对于迭代协议的技术定义--->传送门


    2024-02-27 09:45:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师