给出以下两段代码:
function * gen(g) {
for (const value of g) {
yield value;
}
}
和
function * gen(g) {
yield * g;
}
行为有什么不同吗?据我所知,它们在行为上是相同的。我在查看
yield *
语法的值时遇到麻烦。它不仅限于在for..of循环中迭代可迭代对象,还具有更多限制,并且在读取它时所做的工作不那么明显(我认为)。 最佳答案
这是the ExploringJS explanation of the difference,它非常详尽。答案通常是,是的,它们是等效的,但是有一些细微的差异。最显着的区别是返回值由yield *
转发,而不是通过迭代和yield转发。
这是an example。差别很小。
关于javascript - yield *和for..of循环中yield的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49848346/