迭代器接口和生成器的关系
任何一个对象实现了 [Symbol.iterator]
方法,就可以使用 for ... of
方法进行遍历,迭代器接口本身可以是一个生成器函数,生成器中可以通过 yield *
迭代可迭代对象。
const a = { b: [1,2,3], *[Symbol.iterator]() { yield * this.b } } const b = [...a]
迭代器接口也可以是一个包含 next 函数的一个对象,返回 done 和 value
const a = { b: 1, next() { if(this.b===10) { return { done: true, value: 10 } } return { value:this.b++, done: false } }, [Symbol.iterator]() { return this } } const b = [...a] // 1,...,10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
更多
发布评论