js中的iterator与生成器

实现了__iterator__()方法,这个方法返回一个迭代器对象,迭代器对象要求实现next()方法,当next完结时,发抛出StopIteration异常,那么就可以用在for/in结构中,for/in循环自行处理Iterator()函数的调用及异常的处理。当然,也可以手动调用Iterator()函数来自行进行处理。
当对象没有实现__iterator__()方法时,Iterator()函数返回一个内部实现的迭代器对象,这个迭代器能够对自身的属性进行迭代。

Javascript还引入了yield(关键字),使用yield的函数称为生成器函数,生成器函数通过yield返回值(所以也规定了它不能够通过return返回值,这也是其特殊之处)。按照语法规定,生成器函数的调用,返回的是一个生成器,生成器对象的next()方法返回yield出来的值,并且下次调用能够恢复生成器函数的执行,直到函数再次yield。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容