给出以下两段代码:
function * gen(g) {
for (const value of g) {
yield value;
}
}
和
function * gen(g) {
yield * g;
}
行为有什么不同吗?据我所知,这些行为完全相同。我无法看到yield *
语法的值。它比在for..of循环中迭代迭代更具限制性,而在读取它时它的作用则不那么明显(在我看来)。
答案 0 :(得分:1)
这里the ExploringJS explanation of the difference,非常详尽。答案通常是,是的,它们相当,但存在一些小的差异。最显着的区别是返回值由yield *
转发,但不是通过迭代和屈服转发。
此处an example。差别很小。