给出以下两段代码:

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/

10-12 16:25
查看更多