for..of循环中yield *和屈服之间的差异?

时间:2018-04-16 01:05:42

标签: javascript ecmascript-6 generator

给出以下两段代码:

function * gen(g) {
  for (const value of g) {
    yield value;
  }
}

function * gen(g) {
  yield * g;
}

行为有什么不同吗?据我所知,这些行为完全相同。我无法看到yield *语法的值。它比在for..of循环中迭代迭代更具限制性,而在读取它时它的作用则不那么明显(在我看来)。

1 个答案:

答案 0 :(得分:1)

这里the ExploringJS explanation of the difference,非常详尽。答案通常是,是的,它们相当,但存在一些小的差异。最显着的区别是返回值由yield *转发,但不是通过迭代和屈服转发。

此处an example。差别很小。