在JS中有一个...
在这里,您会说该对象是不舒服的 - 要迭代。事实证明,只有迭代对象才能使用此方法遍历此方法。那么什么是迭代对象?
要成为一个迭代对象,您必须实现@@迭代器。显然,我们普通陈述的对象之一没有实施。我们声明一个数组并检查其原型对象上的符号。
这表明构建的JS数组默认情况下实现了他的迭代方法,因此可以迭代的数组来进行...以这种方式。通常会...
从上图可以看出,迭代器是一个对象,并且该对象具有下一个方法,该方法返回值和完成的值,然后我们可以实现迭代器,下一个返回值并完成。如果最后一个是
1.自定义迭代器
以上方法可以看到我们的对象可以用于... of ..通过定制方法遍历。
2.通过使用生成器来定义生成迭代器的方法,我们使用自定义函数的方法来生成迭代器,但是JS实际上提供了一种使我们更加优雅的方法。Gererater功能,查看定义:
首先,当我们从字面上看,我们知道生成器是一个函数,并且此函数基于开始,执行生成器函数,并且将返回迭代器。迭代器的下一个方法在哪里?您要返回值并完成吗?MDN上的发电机函数上有一个句子:
生成器函数提供了一个强大的选择:它允许您定义一个包含其自己的迭代算法的函数,并且可以自动维护其自己的状态。初始调用时,生成器函数不会执行任何代码,但返回了调用的迭代器,称为迭代器生成器。当消耗调用发电机的下一个方法时,将执行发电机函数,直到遇到收益率关键字。这一次,另一个关键字出现了。我们可以看到,发电机功能将自己维护状态。就像我们自定义的上述方式一样,我们通过设置索引闭合来维护下一个功能。LET的请参见一个示例以了解生成器函数的作用。
可以看出,我们设置了一个发电机函数以执行他并返回迭代器。该迭代器会自动具有下一个方法。价值是产量背后的价值。这意味着该函数在功能中维护我们的状态。维护,每次执行下一个方法时,我们都会留在下一个收益率方法中。