【发布时间】:2014-11-28 13:20:42
【问题描述】:
我正在尝试使用生成器在 ES6 中创建 List monad。为了让它工作,我需要创建一个已经消耗了几个状态的迭代器的副本。如何在 ES6 中克隆迭代器?
function* test() {
yield 1;
yield 2;
yield 3;
}
var x = test();
console.log(x.next().value); // 1
var y = clone(x);
console.log(x.next().value); // 2
console.log(y.next().value); // 2 (sic)
我从lodash 尝试过clone 和cloneDeep,但它们没有用。以这种方式返回的迭代器是原生函数,并在内部保持其状态,所以似乎没有办法使用自己的 JS 代码。
【问题讨论】:
标签: javascript ecmascript-6 clone generator