2
我創造了一個函數foo的變量如下爲什麼發電機給出相同的輸出,如果沒有分配給
function* foo(){
var index = 0;
while (index <= 2)
yield index++;
}
當我打電話下面的函數給出了相同的輸出
console.log(foo().next()); //Object {value: 0, done: false}
console.log(foo().next()); //Object {value: 0, done: false}
console.log(foo().next()); //Object {value: 0, done: false}
但是當我試圖下面給作爲例外輸出
var xx=foo();
console.log(xx.next()); //Object {value: 0, done: false}
console.log(xx.next()); //Object {value: 1, done: false}
console.log(xx.next()); //Object {value: 2, done: false}
console.log(xx.next()); //Object {value: undefined, done: true}
我只是想明白它背後的原因,爲什麼發生這種情況
這是既正確又正確的答案 - 但它很少說明和解釋OP的行爲。請考慮添加一個例子,解釋爲什麼它有用或做類似的事情。 –
@BenjaminGruenbaum - 更好? :-) – Amit
非常感謝。一個不是生成器的迭代器的例子也很好:) –