迭代器(Iterator)和可迭代对象(Iterable)有什么区别?它们之间是否存在亚类型关系?在一些真实应用场景中它们的实际区别是什么?我试图阅读一些教程和规范,但它们都非常复杂。(如果需要的话,我正在使用ES6和Babel。)
来自《深入浅出ES6》一书,作者是Axel Rauschmayer博士: 可迭代对象是一种数据结构,希望将其元素提供给公众访问。它通过实现一个方法(键为Symbol.iterator),来实现这一目的。该方法是一个迭代器工厂。 迭代器是用于遍历数据结构元素的指针(类似于数据库中的游标)。